spring-boot - spring-kafka KafkaListener 运行时自动启动行为

标签 spring-boot apache-kafka spring-kafka

我正在为消费者应用程序使用 spring-Kafka 运行一个 spring 应用程序。 在 Kafka 监听器中,我们使用 SpEL 表达式设置了自动启动。我们在运行时更改此值以使此表达式为假。当我们更改属性时,KafkaListener 将停止使用更多消息。

问题:这是停止轮询更多记录的正确方法,还是我们应该使用 kafkaListenerEndpointRegistry 并停止服务?这两者有什么区别?

另一个问题,如果我有另一个应用程序使用同一个消费者组,所有分区都会重新分配给该应用程序吗?

最佳答案

autoStartup 仅被考虑一次(在应用程序上下文初始化期间)。如果为 true,容器将启动,如果为 false,则不会。

初始化后在运行时更改属性不会停止容器。

在上下文启动并运行后,您必须通过容器注册表使用停止/启动来停止/启动容器。

如果您在同一个组中有多个实例,分区将分布在各个实例中;一个分区只能由同一组中的一个消费者消费。

关于spring-boot - spring-kafka KafkaListener 运行时自动启动行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64127615/

相关文章:

java - Hibernate异常: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set but works on another machine with no issue

Spring测试@Sql不从sql文件中插入数据

apache-kafka - Python confluent kafka 在代理连接断开时引发异常

spring-boot - 根据异常类型调用ContainerStoppingErrorHandler

java - 2.1.7版本的Maven配置问题-Spring Boot

java - Spring Data JPA - 编码 UTF-8 不起作用

apache-kafka - 保持两个 kafka 集群同步的最佳方法是什么

apache-kafka - Spring 集成和 Kafka : How to filter messages based on message header

java - Spring Kafka 和 Kafka Streams

Spring Kafka 监听器执行器