web-dev-qa-db-ja.com

再起動kafkaシンクとソースコネクタを最初から読み取るように接続します

私はこれについてかなり多く検索しましたが、これについての良いガイドはないようです。

私が検索したものから、考慮すべきことがいくつかあります。

  • シンクコネクタの内部トピック(ステータス、構成、オフセット)をリセットします。
  • ソースコネクタオフセットの実装は実装固有です。

質問:これらのトピックをリセットする必要さえありますか?

  • コンシューマグループを削除しています。
  • 別の名前でコネクタを再起動することもできます(これもオプションです)が、正しい方法ではないようです。
  • コンシューマグループを--reset-offsetsから--to-earliestにリセットしています
  • REST APIを使用します(リセットして最初から読み取る機能を提供します)

最初から読み取るためにシンクとソースの両方のコネクタを再起動する最良の方法は何ですか?

6
el323

ソースコネクタ分散モード-オフセットトピックに新しいメッセージを生成する別のオプションがあります。たとえば、jdbcソースコネクタを使用しています。オフセットのトピックを見ると、次のように表示されます。

./kafka-console-consumer.sh --zookeeper localhost:2181/kafka11-staging --topic kc-staging--offsets --from-beginning --property print.key=true

["referrer-family-jdbc-source",{"query":"query"}]   {"incrementing":100}

これをリセットするには、インクリメントが0の別のメッセージを生成します。

例: ここからキーを使用してシェルから生成する方法

./kafka-console-producer.sh \
  --broker-list `hostname`:9092 \
  --topic kc-staging--offsets \
  --property "parse.key=true" \
  --property "key.separator=|"
["referrer-family-jdbc-source",{"query":"query"}]|{"incrementing":0}

次のことを行う必要があることに注意してください。

  • コネクタを削除します。
  • 上記のように、関連するオフセットを含むメッセージを生成します。
  • コネクタを再度作成します。
0
Ehud Lev