簡體   English   中英

從 Confluent Replicator 遷移到 Apache Mirror Maker 2.0 時保持相同的偏移量

[英]Maintaining same offset while migrating from Confluent Replicator to Apache Mirror Maker 2.0

我們目前正在嘗試將 Confluent 復制器遷移到 Apache Open Source Mirror Maker v2.0。 我們面臨一個問題,當鏡像制造商在同一主題上啟動時,已經被復制器復制的消息再次被復制。 這不應該發生,因為消息在目標集群中被復制。 以下是更多詳細信息:

  1. RCA:replicator 為復制消息分配一個消費者組。 這個消費者組維護了源主題的偏移量。 但是我們無法將相同的消費者組分配給鏡像制造商 2 中的消費者配置。
  2. Mirror Maker 1.0:可以在 consumer.properties 文件中分配作為同一消費者組工作的消息,並且在復制器停止后立即選擇消息。
  3. 嘗試在 mirror maker 2.0 的所有可用選項中運行和配置source.cluster.consumer.group.id (在集群模式下,在連接獨立和連接分布式模式下),但鏡像制造商 2.0 在復制消息時將使用者組 ID 分配為 null .

如果有人做過同樣的事情並試圖與 mirror maker 2.0 保持相同的偏移量,那么任何指針。

我們有一個粗略的方法來解決這個問題。 以下是高級步驟:

  • 從 Replicator 的內部主題中讀取消息以存儲偏移量。 [連接偏移]
  • 該主題存儲所有主題的偏移量,這些主題在鍵:值對中被復制。 例如

鍵:["replicator-group",{"topic":"TEST","partition":0}]
值:{“偏移”:24}

  • 對於每個主題和分區,每當復制一條新消息時,都會產生一條具有相同鍵但增加了偏移量的新消息到連接偏移量主題。
  • 將此消息的密鑰轉換為Mirror Maker 2 格式,並在MirrorMaker2 的內部主題中生成。 【可以在mirrormaker2-connect-distributed.properties文件中更改內部主題】鏡像制作者內部主題的格式為:

鍵:["mirrormaker-group",{"cluster":"","partition":0,"topic":"TEST"}]
值:{“偏移”:24}

  • 發布消息后,一旦鏡像制造商重新啟動,它將讀取內部主題以獲取該消息必須復制的主題的最新偏移量,這樣我們可以確保沒有重復的消息被復制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM