疑難排解MSK複製器 - Amazon Managed Streaming for Apache Kafka

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

疑難排解MSK複製器

下列資訊可協助您疑難排解MSK複製器可能遇到的問題。如需有關其他 Amazon MSK 功能Amazon MSK 叢集疑難排解的問題解決資訊,請參閱。您也可以將問題發佈到 AWS re:Post.

MSK複寫器狀態從到 CREATING FAILED

以下是MSK複製器建立失敗的一些常見原因。

  1. 驗證您在目標叢集區段中為建立複寫器提供的安全群組是否具有傳出規則,以允許流量前往目標叢集的安全群組。此外,請驗證目標叢集的安全群組是否具有傳入規則,可接受來自於目標叢集區段中為建立複寫器提供之安全群組的流量。請參閱 選擇目標叢集

  2. 如果您要建立跨區域複寫的複製器,請確認您的來源叢集已針對IAM存取控制驗證方法開啟多重VPC連線。請參閱 Amazon 在單一區域中的MSK多重VPC私有連線。此外,請確認已在來源叢集上設定叢集原則,以便MSK複製器可以連線到來源叢集。請參閱 步驟 1:準備 Amazon MSK 來源叢集

  3. 確認您在建立MSK複製器期間提供的IAM角色具有讀取和寫入來源和目標叢集所需的權限。此外,請確認IAM角色具有寫入主題的權限。請參閱設定複寫器設定和許可

  4. 確認您的網路ACLs未封鎖MSK複製器與來源和目標叢集之間的連線。

  5. 當MSK複製器嘗試連線到來源或目標叢集時,可能無法完全使用來源或目標叢集。這可能是由於過多的負載、磁碟使CPU用量或使用量造成複製器無法連線至代理程式。修復代理程式的問題,然後重試建立複寫器。

執行上述驗證後,請再次建立MSK複製器。

MSK複製器顯示卡在狀CREATING態中

有時候建立MSK複製器最多可能需要 30 分鐘。等候 30 分鐘,然後再次檢查複寫器的狀態。

MSK複製器不會複製資料或僅複製部分資料

依照下列步驟,對資料複寫問題進行疑難排解。

  1. 使用 Amazon 中複製器提供的 AuthError 指標,確認複MSK製器未遇到任何身份驗證錯誤。 CloudWatch如果此測量結果超過 0,請檢查您提供給複製器之IAM角色的原則是否有效,以及未針對叢集權限設定拒絕權限。根據 clusterAlias 維度,您可以識別來源或目標叢集是否發生驗證錯誤。

  2. 驗證您的來源和目標叢集沒有遇到任何問題。複寫器可能無法連線到來源或目標叢集。這可能是由於連接太多,磁盤滿容量或高CPU使用率而發生。

  3. 使用 Amazon CloudWatch 中的 KafkaClusterPingSuccessCount 指標,確認可從MSK複製器存取來源和目標叢集。根據clusterAlias維度,您可以識別來源或目標叢集是否遇到驗證錯誤。如果此指標為 0 或沒有資料點,則表示連線的運作狀態不佳。您應該檢查MSK複製器用來連線到叢集的網路和IAM角色權限。

  4. 使用 Amazon 中的 ReplicatorFailure 指標,確認複製器沒有因為缺少主題層級許可而發生故障。 CloudWatch如果此測量結果大於 0,請檢查您為主題層級權限提供的IAM角色。

  5. 驗證您在建立複寫器時,在允許清單中提供的規則運算式是否與您要複寫的主題名稱相符。此外,請驗證主題並未因為拒絕清單中的規則運算式而排除在複寫之外。

  6. 請注意,複製器最多可能需要 30 秒的時間才能偵測並建立目標叢集上的新主題或主題磁碟分割。如果複製器的起始位置是最新的 (預設值),則不會複寫在目標叢集上建立主題之前對來源主題產生的任何訊息。或者,如果您想要複寫目標叢集上主題的現有訊息,則可以從來源叢集主題磁碟分割中的最早偏移量開始複寫。請參閱 設定複寫器設定和許可

目標叢集中的訊息偏移量與來源叢集不同

複製MSK器會從來源叢集取用訊息,並將它們產生到目標叢集,做為複寫資料的一部分。這可能會導致訊息在來源和目標叢集上具有不同的偏移量。不過,如果您已在複製器建立期間開啟用戶群組偏移同步,MSKReplicator 會在複製中繼資料時自動轉譯偏移,以便在容錯移轉至目標叢集之後,您的取用者可以從來源叢集中停止的地方繼續處理。

MSK複寫器未同步用戶群組位移,或目標叢集上不存在用戶群組

請依照下列步驟疑難排解中繼資料複寫問題

  1. 確認資料複製是否如預期般運作。如果沒有,請參閱 MSK複製器不會複製資料或僅複製部分資料

  2. 確認您在建立複製器時,在允許清單中提供的規則運算式符合您要複寫之用戶群組的名稱。此外,請確認用戶群組並未因為拒絕清單中的規則運算式而排除在複寫之外。

  3. 確認MSK複製器已在目標叢集上建立主題。複製器最多可能需要 30 秒的時間才能偵測並建立目標叢集上的新主題或主題磁碟分割。如果複製器的起始位置是新的 (預設值),則不會複寫在目標叢集上建立主題之前對來源主題產生的任何訊息。如果來源叢集上的用戶群組只耗用了「複製MSK器」未複製的訊息,則不會將用戶群組複製到目標叢集。在目標叢集上成功建立主題之後,MSK複寫器會開始將來源叢集上新寫入的訊息複寫到目標。一旦用戶群組開始從來源讀取這些訊息,MSK複寫器就會自動將用戶群組複寫到目標叢集。或者,如果您想要複寫目標叢集上主題的現有訊息,則可以從來源叢集主題磁碟分割中的最早偏移量開始複寫。請參閱 設定複寫器設定和許可

注意

MSK複製器會針對來源叢集上的取用者最佳化用戶群組偏移同步,這些用戶群組會從接近主題磁碟分割結尾的位置讀取。如果您的用戶群組落後於來源叢集上,與來源相比,您可能會看到目標上這些用戶群組的延遲較高。這意味著在容錯移轉到目標叢集之後,您的取用者將重新處理更多重複的訊息。為了減少此延遲,來源叢集上的消費者需要 catch 並從串流尖端開始使用 (主題磁碟分割的結尾)。隨著您的消費者 catch,MSK複製器將自動減少延遲。

複寫延遲很高或持續增加

以下是造成高複寫延遲的一些常見原因。

  1. 確認來源和目標MSK叢集上的分割區數目正確。分區過少或過多可能會影響效能。如需有關選擇分區數量的指引,請參閱 使用MSK複製器的最佳做法。下表顯示建議的最小分割區數目,以取得MSK複製器所需的輸送量。

    輸送量和建議的分區數量下限
    輸送量 (MB/s) 所需的分區數量下限
    50 167
    100 334
    250 833
    500 1666
    1000 3333
  2. 確認來源和目標MSK叢集中有足夠的讀取和寫入容量來支援複寫流量。MSK複製器充當來源叢集 (輸出) 的取用者,也可做為目標叢集 (入口) 的生產者。因此,除了叢集上的其他流量以外,您還應佈建叢集容量以支援複寫流量。使用MSK複製器的最佳做法如需調整MSK叢集大小的指引,請參閱。

  3. 不同來源和目的地中MSK叢集的複寫延遲可能會有所不同 AWS 區域配對,取決於叢集彼此之間的地理位置之間的距離。例如,在歐洲 (愛爾蘭) 與亞太區域 (雪梨) 區域中叢集之間的複寫,比在歐洲 (愛爾蘭) 與歐洲 (倫敦) 區域中叢集之間的複寫延遲更低。

  4. 驗證您的複寫器沒有因為在來源或目標叢集上設定過度積極的配額而受到限流。您可以使用 Amazon 中MSK複製器提供的 ThrottleTime指標,查看 CloudWatch 來源/目標叢集上代理程式限制請求的平均時間 (毫秒)。如果此指標高於 0,則應調整 Kafka 配額以減少限流,以便複寫器可以追上。如需有關管理複寫器 Kafka 配額的資訊,請參閱 使用 Kafka 配額管理MSK複寫器輸送量

  5. ReplicationLatency 並且 MessageLag 可能會增加 AWS 區域變得降級。使用 AWS Service Health Dashboard,用於檢查主要MSK叢集所在區域中是否有MSK服務事件。如果發生服務事件,您可以暫時將應用程式讀取和寫入重新導向至其他區域。