私は、Springアプリケーションを使用して2つのKafkaクラスター(基本的には派手なMirrorMakerインスタンス)をブリッジするためにSpring Cloud Dataflowを使用しようとしています。ドキュメントで扱うように、私は2つのバインダーを定義しました。 Kafka-qa1はデフォルトであり、kafka-qa2は出力バインダーとして定義または配備プロパティーで提供されます。例: app.bridge.spring.cloud.stream.bindings.output.binder = kafka-qa2複数のKafkaバインダーを使用したSpring Cloudデータフロー
マイSCDFのapplication.yamlは、両方の結合剤が含まれています
spring:
cloud:
dataflow:
applicationProperties:
stream:
spring:
cloud:
stream:
defaultBinder: kafka-qa1
binders:
kafka-qa1:
type: kafka
environment:
spring:
brokers: qa-1.example.com:9093
zk-nodes: qa-1.example.com:2181
kafka-qa2:
type: kafka
environment:
spring:
brokers: qa-2.example.com:9093
zk-nodes: qa-2.example.com:2181
それが出力バインダーを無視しているようだが。私はまた、私の設定(以下)で1つのバインダーで使用するセクションを保管しています。私がそれを削除すると、defaultBinderオプションは機能しないように見え、localhostに戻ります。
kafka:
binder:
brokers: qa-1.example.com:9093
複数のカフカクラスターをBridgeアプリケーションに接続するためのアイデアや例はありますか?
2181は、出力バインダーは、しかし、まだ作業していないと思われます。これは私が使用しているストリーム定義です。qa1に出力しようとしています(トピックが存在しないというエラーはありません): 'stream create bridge-test --definition":myTopic1 - :myTopic2 --spring.cloud .stream.bindings.input.binder = kafka-qa1 --spring.cloud.stream.bindings.output.binder = kafka-qa2 "--deploy' –
あなたはまだ入力/出力チャンネルを定義する必要があります。話題はそれぞれ。これを行うには、 'bridge-processor'を使用する必要があります。これは、内部で上流のアプリケーションまたは下流のアプリケーションと指定された宛先を橋渡しするために使用します。 –
あなたのストリーム定義は次のようになります: 'stream create bridge-test --definition:myTopic1> bridge>:myTopic2" 'ストリームをデプロイすると、バインダーのプロパティを「ブリッジプロセッサ」のように渡します。 : 'stream deploy bridge-test --properties 'app.bridge.spring.cloud.stream.bindings.input。バインダー= kafka-qa1、app.bridge.spring.stream.bindings.output.binder = kafka-qa2 " –