我正在嘗試使用Spring雲端數據流橋接兩個使用Bridge應用的Kafka羣集(本質上是一個花哨的MirrorMaker實例)。正如文檔中所述,我定義了兩個綁定器。卡夫卡QA1應該是默認的,並且可以在定義或部署屬性作爲輸出粘結劑例如被提供卡夫卡-QA2: app.bridge.spring.cloud.stream.bindings.output.binder =卡夫卡-QA2春季雲端數據流與多個Kafka粘合劑
我的新加坡民防部隊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
但是它似乎忽略輸出粘合劑。我還在我的配置中保留了該部分以用於單個活頁夾(以下)。如果我刪除它,defaultBinder選項似乎不起作用,它將恢復到本地主機。
kafka:
binder:
brokers: qa-1.example.com:9093
任何想法或示例指向我連接多個Kafka集羣與Bridge應用程序?
這讓我爲默認粘結劑爲QA1工作,輸出粘結劑沒有出現,雖然圖還要工作。這是我正在使用的流定義,它試圖輸出到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' –
您仍然需要定義輸入/輸出通道才能夠引腳主題分別爲。爲了做到這一點,您必須使用'橋接處理器' - 這是我們內部使用的橋接命名目的地與上游或下游應用程序。 –
然後,您的流定義變爲: 'stream create bridge-test --definition「:myTopic1> bridge>:myTopic2」'當您部署流時,您需要將binder屬性傳遞給「橋處理器」 : 'stream deploy bridge-test --properties「app.bridge.spring.cloud.stream.bindings.input。binder = kafka-qa1,app.bridge.spring.cloud.stream.bindings.output.binder = kafka-qa2「' –