为两个独立的集群配置 Spring Kafka

Ros*_*sky 2 apache-kafka spring-boot spring-kafka

是否可以将 Kafka 配置为在单个 Spring Boot 应用程序中使用两个独立的集群?

用例:我有两个带有副本+zookeeper的集群:

  • 集群 #1引导服务器server1.example.com,server2.example.com,server3.example.com
  • 集群 #2引导服务器target-server1.example.com,target-server2.example.com,target-server3.example.com

我需要使用该消息,Cluster #1然后根据该数据进行一些计算,并生成Cluster #2主题结果。有没有办法在单个 Spring 应用程序中配置 Kafka 来处理这种方法?

Gar*_*ell 7

是的,但是如果你想同时消费和生产,你必须手动配置消费者和生产者工厂@Bean等。

引导只能从属性中自动配置其中之一。

但如果您只是从一个集群消费并生产到另一个集群,则可以通过属性来完成。

使用

spring.kafka.producer.bootstrap-servers=...
...
spring.kafka.consumer.bootstrap-servers=...
Run Code Online (Sandbox Code Playgroud)

这些将覆盖公共属性。