私はKafkaノードコンテナとは別に、ローカルの「起動」Dockerコンテナで分散モードでKafkaコネクタを起動しています。コネクタは正常に動作しますが、起動コンテナを強制終了すると、コネクタは動作を停止します。私はそれが登録され、別のコンテナにあるカフカノードのワーカーで実行されていると信じて以来、作業を続けることを期待していました。私の設定は以下の通りです:私が作成したノードを殺したときにKafka分散コネクタが死んでしまうのはなぜですか?
現在、私はDockerコンテナを使ってすべてをローカルで実行しています。私が持っている:
- A飼育係のノード(3.4.9)
- Aカフカノード(Apacheのは、0.10.1.0)
- A '打ち上げ' ノードを。
起動ノードが適切なKafkaバージョンをダウンロードし、その内容を解凍します。また
connect-distributed.sh config/connect-distributed.properties
分散特性ファイルはグループIDを設定し、様々なトピック名、スキーマおよび変換器と:それは次いでようなコネクタを実行し、必要なJARファイルを含むようにクラスパスを設定し、コネクタのソースを構築します(上記のカフカノード(2)を指している)ブートストラップサーバ。
このコマンドは、適切なコネクタhttpサービスが正常に起動していると思われます。私はhttp://example:8083/connectorsにPOST要求を出して、コネクタタスクの設定を提供することができます。コマンドはエラーなしで完了し、コネクターは正常に開始されます。私はKafkaノード(2)のトピックから消費することができ、コネクターが動作し、データを送信していることを示す出力が表示されます。
起動ノード(3)を強制終了すると、私はKafkaクラスターに登録されているので、コネクターは1つのクラスターとして登録されているので、コネクターは継続して実行されます。コネクターは実行を継続せず、起動ノードで消滅するように見えます。クラスタ内の作業者がコネクタを管理する必要はありませんか?どうやってコネクターを起動するのかを変える必要があるのですか、何かを誤解していますか?
感謝。私のKafkaクラスタの各ノードで少なくとも1つのコネクタタスクを実行するワーカープロセスが必要な場合は、これは私のKafkaノード構成の一部です。 2番目の質問:何らかの理由でコネクターに障害が発生した場合は、必要なノードで自動的にコネクターを再始動するコネクター状況のトピックをモニターする必要がありますか? – LaserJesus
ワーカーは自動的にタスクを配布します。したがって、少なくとも1つのコネクタを起動して十分なタスクがあれば、すべてのワーカーが積極的にデータを処理します。監視のためには、状況トピックを監視し、適切なアクションをとって再起動することができます(*が*合っていれば、タスクを再起動するだけで解決されない他のシステムの問題かもしれません)。 –
もう一度お世話になりました。したがって、カフカクラスタに3つのノードがある場合は、各ノードのコネクタを起動して、各ノードのコネクタにタスクを実行させ、単一のノードに障害が発生しても、他のノード?私。あるノード上でコネクターを開始しても、コネクターとそれぞれのワーカーが自動的に他のノードで開始することはありませんか? – LaserJesus