本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
主動-主動複寫
在主動-主動式設定中,兩個 MSK 叢集都主動提供讀取和寫入。主動-主動叢集拓撲提供近零的復原時間和串流應用程式在多個 AWS 區域中同時操作的功能。
使用字首主題名稱複寫 (建議)
對於主動-主動設定,我們建議使用字首主題名稱複寫 (在主控台中將字首新增至主題名稱)。這需要重新設定您的取用者以讀取複寫的主題,但可避免額外的資料處理費用。
建立 MSK Replicator,以 MSK 叢集 A 做為來源,以 MSK 叢集 B 做為目標。
成功建立上述 MSK Replicator 之後,請建立以叢集 B 作為來源,建立叢集 A 作為目標的複寫器。
建立兩組生產者,每個生產者都會同時將資料寫入與生產者相同區域中叢集的本機主題 (例如「主題」)。
建立兩組取用者,每個取用者使用萬用字元訂閱 (例如
.*topic) 從與取用者相同 AWS 區域中的 MSK 叢集讀取資料。如此一來,您的取用者就會自動讀取從本機主題 (例如topic) 在本機產生的資料,以及從主題中其他 區域複寫且字首為 的資料<sourceKafkaClusterAlias>.topic。這兩組取用者應具有不同的取用者群組 ID,以便在 MSK Replicator 將取用者群組複製到另一個叢集時,不會覆寫取用者群組偏移。
使用相同的主題名稱複寫
如果您想要避免重新設定用戶端,您可以使用相同的主題名稱複寫來建立 MSK Replicator (在主控台中保留相同的主題名稱)。不過,您將為每個複寫器支付額外的資料處理和資料傳輸費用。這是因為每個複寫器都需要處理一般資料量的兩倍,一次用於複寫,另一次用於防止無限迴圈。您可以使用 ReplicatorBytesInPerSec指標追蹤每個複寫器處理的資料總量。
注意
如果您將相同主題名稱複寫用於主動-主動拓撲,請在刪除主題後等待至少 30 秒,再以相同名稱重新建立主題。此等待期間有助於防止重複的訊息複寫回來源叢集。您的取用者必須能夠重新處理重複的訊息,且不影響下游。