使用属性在弹簧云流中启用/禁用kafka绑定

时间:2018-11-21 00:51:52

标签: spring-cloud-stream spring-kafka

是否有任何属性可以启用/禁用Spring Cloud Stream中的kafka绑定。我想将kafka绑定包含在pom.xml中,但想在生产中选择性地禁用/启用kafka绑定。如果没有可用的此类属性,请欣赏任何指针来实现此目的(也许通过某些Java配置或@ Conditional *注释)。

我们为什么需要这个:

我们正在将我们的应用程序之一从oracle db / JMS基础结构迁移到Mongo / Kafka基础结构。我们将同时运行这两个版本的应用,以进行验证。我们通过拥有独立的dao和controller层并保持一个公共服务层来为两者维护相同的源库。想法是部署从相同源库生成的应用程序的两个版本(当前版本和已迁移版本),并并行运行它们一段时间以进行验证。当我们执行此操作时,当前版本不需要知道任何kafka / mongo连接参数,而迁移版本不需要知道任何oracle / JMS连接参数。我们可以使用服务绑定和@ Conditional *批注针对oracle / mongo实现此目的。但是对于用于kafka的Spring云流,我们使用以下属性,这些属性始终需要有效的参数才能建立kafka连接。

  • spring.cloud.stream.kafka.binder.brokers

  • spring.cloud.stream.kafka.binder.zkNodes

1 个答案:

答案 0 :(得分:0)

可以从Spring Boot应用程序中禁用它:

import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;

@SpringBootApplication(exclude = KafkaAutoConfiguration.class)
public class Application {
 ...
}

来自application.properties:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration