kafka测试环境的动态启动开关

1、springboot集成kafka的监听配置

@KafkaListener(topics = "${spring.kafka-topic.consumer.company-info}", containerFactory = "kafkaFactory")
public void receive(String message) {
    this.consume(message);
}

2、factory的配置

//当前的服务的环境
@Value("${spring.profiles.active}")
private String env;
// 开启kafka监听的环境列表,环境之前使用逗号隔开,例如 test1,test3
@Value("${kafka.startup.envs:''}")
private String startupEnvs;

@Bean("kafkaFactory")
ConcurrentKafkaListenerContainerFactory<Integer, String> kafkaFactory() {
    ConcurrentKafkaListenerContainerFactory<Integer, String> factory = super.kafkaContainerFactory();
    factory.setAutoStartup(isStartup());
    LOGGER.info("kafkaFactory当前启动环境:{},启动监听kafka:{}", env, isStartup());
    return factory;
}

// 判断当前环境是否要开启kafka监听
private boolean isStartup() {
    // 过滤掉线上环境
    if (StringUtils.isBlank(startupEnvs) || "prod".equals(env)) {
        return true;
    }
    String[] envs = startupEnvs.split(",");
    if (Arrays.asList(envs).contains(env)) {
        return true;
    }
    return false;
}

3、apollo上的kafka启动的动态配置

kafka.startup.envs=test1,test2,dev

4、环境判断

       在一些公司中,启动环境和打包环境不一致,可能存在所有的测试环境都是使用统一一个测试环境启动,比如:使用test1环境的配置打包,但是启动使用test,所有造成所有的测试环境的启动配置都是一个,为了区分开,可以在相应的配置文件中,加上环境配置,比如:在test1的配置文件中,添加 current.env=test1,然后通过 current.env来判断当前环境就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值