网上查找了关于配置多个kafka地址的方法,可惜没有找到,在一个博客看到了这个方法,大致方法是对的,但是还是有小错误,导致失败。所以自己修改完亲测有效后,写了这个博客。
spring:
cloud:
stream:
binders:
# 接下来的kafka1和kafka2就是两个kafka broker的环境配置,配置完成后可以应用kafka1、kafka2这个定义的名字
# 在别的地方引用。功能和profile中的dev环境、test环境、prod环境一个意思。
kafka1:
type: kafka
environment:
spring:
cloud:
stream:
kafka:
binder:
brokers: 192.168.5.1:9092
kafka2:
type: kafka
environment:
spring:
cloud:
stream:
kafka:
binder:
brokers: 192.168.5.2:9092
bindings:
output_1:
# 指定使用kafka1的环境
binder: kafka1
destination: my_topic_1
content-type: application/json
output_2:
# 没有指定,使用默认环境,下面的配置有指定默认环境。
destination: my_topic_2
content-type: application/json
output_3:
# 指定使用kafka2的环境
binder: kafka2
destination: my_topic_3
content-type: application/json
kafka:
binder:
# 自动创建不存在的topic
autoCreateTopics: true
# 默认使用哪个kafka环境,如下配置是在没有指定kafka环境的时候(如output_2),使用kafka1的配置
default-binder: kafka1