Java 两种不同卡夫卡群集设置的Spring卡夫卡配置
在我们的一个基于spring引导的服务中,我们打算同时连接到两个不同的kafka集群。这些集群都有自己的一组引导服务器、主题配置等。它们之间没有任何关联,就像中的情况一样 我将有不同类型的消息从不同主题名称的每个集群中读取。可能有或可能没有多个生产者通过此服务连接到两个集群,但我们肯定每个集群至少有一个消费者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个生产者)。我认为,其余的
我想知道如何在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,它可以随时改变,因此直接使用它有一些(最小)风险。