当前位置: 首页 > news >正文

可信网站认证不做世界十大网站排名

可信网站认证不做,世界十大网站排名,扬州网站建设yzbosi,WordPress主题添加点赞喜欢按钮这里写自定义目录标题 springboot 配置Kafka 关闭自启动连接方法一:使用 ConditionalOnProperty方法二:手动管理Kafka监听器容器方法三:使用 autoStartupfalse结语 springboot 配置Kafka 关闭自启动连接 在Spring Boot应用程序中&#xff0c…

这里写自定义目录标题

  • springboot 配置Kafka 关闭自启动连接
      • 方法一:使用 @ConditionalOnProperty
      • 方法二:手动管理Kafka监听器容器
      • 方法三:使用 autoStartup=false
      • 结语

springboot 配置Kafka 关闭自启动连接

在Spring Boot应用程序中,默认情况下,Kafka监听器容器会在应用程序启动时自动开始连接到Kafka broker。如果你希望禁用这种自动启动行为,可以通过配置来实现。以下是几种常见的方法:

方法一:使用 @ConditionalOnProperty

你可以使用条件注解来控制Kafka监听器容器的启动。通过设置一个属性来决定是否启用Kafka监听器。
步骤:

  1. 定义配置属性: 在你的application.yml或application.properties文件中添加一个自定义属性,用于控制Kafka监听器的启用状态。
   spring:kafka:enabled: false
  1. 使用 @ConditionalOnProperty 注解: 在你的Kafka监听器类上使用@ConditionalOnProperty注解,根据配置属性来决定是否启用该监听器。
   import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.kafka.annotation.KafkaListener;import org.springframework.stereotype.Component;@Component@ConditionalOnProperty(name = "spring.kafka.enabled", havingValue = "true")public class MyKafkaListener {@KafkaListener(topics = "your-topic-name", groupId = "your-group-id")public void listen(String message) {System.out.println("Received Message: " + message);}}

方法二:手动管理Kafka监听器容器

另一种方法是手动管理Kafka监听器容器的生命周期,而不是依赖于Spring Boot的自动配置。
步骤:

  1. 禁用自动配置: 在你的主应用程序类或配置类上排除KafkaAutoConfiguration。
   import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration;@SpringBootApplication(exclude = KafkaAutoConfiguration.class)public class DeviceExchangeApplication {public static void main(String[] args) {long startTime = System.currentTimeMillis();System.out.println("-----------> 数据交换链[device-exchange]启动...");SpringApplication.run(DeviceExchangeApplication.class, args);System.out.println("-----------> 数据交换链[device-exchange]启动成功,耗时:" + (System.currentTimeMillis() - startTime) + "毫秒");}}
  1. 手动创建和管理Kafka监听器容器: 创建并管理Kafka监听器容器,以便在需要的时候手动启动它们。
   import org.apache.kafka.clients.consumer.ConsumerConfig;import org.apache.kafka.common.serialization.StringDeserializer;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;import org.springframework.kafka.core.ConsumerFactory;import org.springframework.kafka.core.DefaultKafkaConsumerFactory;import org.springframework.kafka.listener.ConcurrentMessageListenerContainer;import org.springframework.kafka.listener.MessageListenerContainer;import java.util.HashMap;import java.util.Map;@Configurationpublic class KafkaConfig {@Autowiredprivate MyKafkaListener myKafkaListener;@Beanpublic Map<String, Object> consumerConfigs() {Map<String, Object> props = new HashMap<>();props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);props.put(ConsumerConfig.GROUP_ID_CONFIG, "your-group-id");return props;}@Beanpublic ConsumerFactory<String, String> consumerFactory() {return new DefaultKafkaConsumerFactory<>(consumerConfigs());}@Beanpublic ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {ConcurrentKafkaListenerContainerFactory<String, String> factory =new ConcurrentKafkaListenerContainerFactory<>();factory.setConsumerFactory(consumerFactory());return factory;}@Beanpublic MessageListenerContainer kafkaListenerContainer() {ConcurrentMessageListenerContainer<String, String> container =kafkaListenerContainerFactory().createContainer("your-topic-name");container.setupMessageListener(myKafkaListener::listen);return container;}}
  1. 手动启动Kafka监听器容器: 在需要的时候手动启动Kafka监听器容器。
   import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.CommandLineRunner;import org.springframework.kafka.listener.MessageListenerContainer;import org.springframework.stereotype.Component;@Componentpublic class KafkaStarter implements CommandLineRunner {@Autowiredprivate MessageListenerContainer kafkaListenerContainer;@Overridepublic void run(String... args) throws Exception {// 手动启动Kafka监听器容器kafkaListenerContainer.start();}}

方法三:使用 autoStartup=false

你可以在Kafka监听器容器的配置中设置autoStartup=false,这样它就不会在应用程序启动时自动启动。
步骤:

  1. 配置 autoStartup=false: 在你的Kafka监听器配置中设置autoStartup=false。
   import org.springframework.kafka.annotation.KafkaListener;import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory;import org.springframework.kafka.listener.ConcurrentMessageListenerContainer;import org.springframework.kafka.listener.MessageListenerContainer;import org.springframework.stereotype.Component;@Componentpublic class MyKafkaListener {@KafkaListener(id = "myListener", topics = "your-topic-name", autoStartup = "false")public void listen(String message) {System.out.println("Received Message: " + message);}}
  1. 手动启动Kafka监听器容器: 使用MessageListenerContainer接口的手动启动方法。
   import org.springframework.beans.factory.annotation.Autowired;import org.springframework.kafka.listener.MessageListenerContainer;import org.springframework.stereotype.Component;@Componentpublic class KafkaStarter {@Autowiredprivate MessageListenerContainer myListenerContainer;public void startKafkaListener() {myListenerContainer.start();}}

总结
通过上述三种方法,你可以有效地控制Kafka监听器容器的自动启动行为。选择适合你项目需求的方法来实现即可。通常情况下,使用@ConditionalOnProperty是最简单和灵活的方式。

结语

以上答案来自大模型,第二种和第三种都比较麻烦,最后采用了第一种方式在所有的消费类上加了@ConditionalOnProperty(name = "spring.kafka.enabled", havingValue = "true"),启动就很快了,KafkaAdmin 和 KafkaConsumer就没有自动启动了。用kafkaTemplate发送消息还是会去连接Kafka服务器,不影响正常使用。
注意:必须是所有的消费类必须加,不然就不会起作用。
主要场景:一般线上部署环境才会去连接kafka,本地开发的时候 不一定要去连,所以想暂时关闭一下

http://www.mmbaike.com/news/51789.html

相关文章:

  • wordpress克隆seo关键词排名优化评价
  • 最好的手表网站百度排名软件
  • 跨境电商网站开发公司看片应该搜什么关键词哪些词
  • wordpress图片尺寸seo查询
  • 房屋中介网站怎么做怎么样做一个自己的网站
  • 哪个网站可以哪些企业做哪些产品收录优美图片官网
  • 上海建设局网站首页淘特app推广代理
  • 美橙建站靠谱吗seo 优化技术难度大吗
  • 网站的seo优化方案全国最新疫情实时状况地图
  • 深圳龙岗住房和建设局网站官网长春关键词优化公司
  • 大冶建设局网站自助建站
  • 政府网站建设管理通知seo的形式有哪些
  • 合肥快速做网站出售外链
  • 佛山做网站优化全国疫情一览表
  • 杭州市网站推广知乎seo排名的搜软件
  • 日本软银集团投资了多少公司百度seo
  • 义乌城市建设规划网站网站优化推广seo
  • 库尔勒谁在做电商网站建设郑州百度推广开户
  • 网盘做电子书下载网站重庆百度推广优化
  • 高端的网站设计公司软文一般发布在哪些平台
  • 找别人做网站怎么防止后门新闻头条 今天
  • mysql优化 wordpress英文seo推广
  • 残疾人无障碍网站怎么做最大的推广平台
  • WordPress搬家到zblog百度seo关键词排名优化教程
  • 微软网站开发品牌营销策划ppt
  • 建网站手机怎么做泰安网站建设优化
  • 做电子商城网站无锡seo公司找哪家好
  • 网站没有备案怎么做支付东莞网站设计公司
  • 西安企业网站建设价格最好最全的搜索引擎
  • p2p网站数据分析怎么做直接登录的网站