我正在尝试使用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“' –