修補 - Amazon Managed Streaming for Apache Kafka

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

修補

在 MSK 佈建叢集上修補

Amazon MSK 會定期更新叢集中代理程式上的軟體。維護包括計劃的更新或非計劃的修復。計劃維護包括作業系統更新、安全性更新、憑證續約,以及維護叢集運作狀態、安全性和效能所需的其他軟體更新。我們會執行意外維護,以解決突然的基礎設施降級。我們會對 Standard 和 Express 代理程式執行維護,但體驗不同。

針對標準代理程式的修補

如果您遵循最佳實務,標準代理程式的更新不會影響您應用程式的寫入和讀取。

Amazon MSK 使用軟體的滾動更新來維持叢集的高可用性。在此過程中,代理程式一次重新啟動一個,而 Kafka 會自動將領導層移至另一個線上代理程式。Kafka 用戶端具有內建機制,可自動偵測分割區領導層的變更,並繼續將資料寫入 MSK 叢集並讀取。遵循 可始終Apache Kafka 用戶端的最佳實務順暢操作叢集,包括修補期間。

在代理程式離線之後,在您的用戶端上看到暫時性中斷連線錯誤是正常的。您也將觀察 p99 讀取和寫入延遲 (通常為高毫秒,最多 ~2 秒) 中的短暫時段 (最多 2 分鐘,通常較少)。這些峰值是預期的,由用戶端重新連線至新的領導者代理程式所造成;這不會影響您的生產或消耗,並且在重新連線後解決。如需詳細資訊,請參閱代理程式離線和用戶端容錯移轉

您也會觀察到指標 的增加UnderReplicatedPartitions,因為已關閉的代理程式上的分割區不會再複寫資料。這不會影響應用程式寫入和讀取,因為這些在其他代理程式上託管的分割區複本現在正在處理請求。

軟體更新後,當代理程式恢復線上狀態時,它需要「追上」離線時產生的訊息。在趕上期間,您可能也會觀察到磁碟區輸送量和 CPU 的使用量增加。如果您在代理程式上有足夠的 CPU、記憶體、網路和磁碟區資源,這些應該不會影響寫入和讀取至叢集。

針對 Express 代理程式的修補

Express 代理程式沒有維護時段。Amazon MSK 會以時間分佈的方式持續自動更新叢集,這表示您可以預期當月偶爾和單一代理程式重新啟動。這可確保您不需要在一次性的叢集整體維護時段周圍進行任何計劃或調整。一如往常,在代理程式重新啟動期間,流量將保持不中斷,因為領導層將變更為其他代理程式,而這些代理程式將繼續提供請求。

Express 代理程式具有最佳實務設定和護欄,讓您的叢集能夠彈性地載入在維護期間可能發生的變更。Amazon MSK 會在您的 Express 代理程式上設定輸送量配額,以減輕叢集超載的影響,這可能會在代理程式重新啟動期間導致問題。當您使用 Express 代理程式時,這些改進可免除預先通知、規劃和維護時段的需求。

快速代理程式一律以三種方式複寫資料,讓您的用戶端在重新啟動期間自動容錯移轉。您不需要擔心因為複寫因素設為 1 或 2 而無法使用主題。此外,追上重新啟動的 Express 代理程式的速度也比標準代理程式更快。Express 代理程式的修補速度越快,意味著您可能為叢集排程的任何控制平面活動,規劃中斷越少。

與所有 Apache Kafka 應用程式一樣,連線至 Express 代理程式的用戶端仍然有共用的用戶端伺服器合約。設定您的用戶端來處理代理程式之間的領導容錯移轉仍然至關重要。隨時遵循 Apache Kafka 用戶端的最佳實務,以順暢操作叢集,包括修補期間。代理程式重新啟動後,在您的用戶端上看到暫時性中斷連線錯誤是正常的。這不會影響您的生產和使用,因為追隨中介裝置將接管分割區領導。您的 Apache Kafka 用戶端會自動容錯移轉,並開始傳送請求給新的領導者代理程式。