Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两种不同卡夫卡群集设置的Spring卡夫卡配置_Java_Spring Boot_Apache Kafka_Spring Kafka - Fatal编程技术网

Java 两种不同卡夫卡群集设置的Spring卡夫卡配置

Java 两种不同卡夫卡群集设置的Spring卡夫卡配置,java,spring-boot,apache-kafka,spring-kafka,Java,Spring Boot,Apache Kafka,Spring Kafka,在我们的一个基于spring引导的服务中,我们打算同时连接到两个不同的kafka集群。这些集群都有自己的一组引导服务器、主题配置等。它们之间没有任何关联,就像中的情况一样 我将有不同类型的消息从不同主题名称的每个集群中读取。可能有或可能没有多个生产者通过此服务连接到两个集群,但我们肯定每个集群至少有一个消费者 我想知道如何在application.yml中定义属性以适应此设置,这样我就可以使用2个不同的KafkaProperties对象来创建4个容器工厂(2个消费者,2个生产者)。我认为,其余的

在我们的一个基于spring引导的服务中,我们打算同时连接到两个不同的kafka集群。这些集群都有自己的一组引导服务器、主题配置等。它们之间没有任何关联,就像中的情况一样

我将有不同类型的消息从不同主题名称的每个集群中读取。可能有或可能没有多个生产者通过此服务连接到两个集群,但我们肯定每个集群至少有一个消费者


我想知道如何在application.yml中定义属性以适应此设置,这样我就可以使用2个不同的
KafkaProperties
对象来创建4个容器工厂(2个消费者,2个生产者)。我认为,其余的应该是非常简单的,因为我需要使用相关的工厂根据业务需求创建特定的容器/侦听器/kafkaTemplate;您需要禁用Boot的自动配置,并自己为每个集群配置基础结构bean


Boot的自动配置只支持一个集群。

在这种情况下,我希望让spring Boot自动配置一个集群,手动配置另一个集群。为了实现这一点,我正在考虑一种方法,我可以使用
@bean
&
@ConfigurationProperties(“my app.kafka”)
创建另一个
KafkaProperties
bean,遵循
my app.kafka
下的
KafkaProperties
的所有规则,并使用此属性存储配置第二个集群。这可行吗?如果是,我需要知道有什么缺点/注意事项吗?它不起作用;例如,如果应用程序上下文
@ConditionalOnMissingBean(ConsumerFactory.class)
中还没有
ConsumerFactory
bean,则引导将仅配置
ConsumerFactory
。您必须自己声明这两组基础结构bean。FIY,引导团队不考虑<代码> KAFKActudio一个公共API,它可以随时改变,因此直接使用它有一些(最小)风险。