2017-02-03 11 views
0

私は、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アプリケーションに接続するためのアイデアや例はありますか?

答えて

0

environmentトークンがありませんbrokerszk-nodesの接頭辞spring.cloud.stream.kafka.binderのように見えます。下記を参照してください。

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.binders.kafka-qa1.type =カフカ

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream .binders.kafka-qa1.environment。 spring.cloud.stream.kafka.binder .brokers = qa-1.example.com:9093

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.binders.kafka-qa1.environment 。 spring.cloud.stream.kafka.binder .zkNodes = qa-1.example.com:2181

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.binders.kafka2.type =カフカ

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.binders.kafka-qa2.environment。 spring.cloud.stream.kafka.binder .brokers = qa-2.example.com:9093

spring.cloud.dataflow.applicationProperties.stream.spring.cloud.stream.binders.kafka-qa2.environment 。 spring.cloud.stream.kafka.binder .zkNodes = qa-2.example.com:QA1としてデフォルトのバインダーのために働いて私を得た

+0

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' –

+0

あなたはまだ入力/出力チャンネルを定義する必要があります。話題はそれぞれ。これを行うには、 'bridge-processor'を使用する必要があります。これは、内部で上流のアプリケーションまたは下流のアプリケーションと指定された宛先を橋渡しするために使用します。 –

+0

あなたのストリーム定義は次のようになります: '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 " –

関連する問題