当前位置: 首页 > 知识库问答 >
问题:

我可以在使用Spring Cloud Stream Kafka 3.0.3时应用优雅关机吗。释放?

扈高逸
2023-03-14

我开发了基于Spring Cloud Stream 3.0.3的kafka消费者应用程序。发布。(SpringBoot 2.3.4。发布)

当我停止此应用程序时,我希望消费者优雅地关闭。类似的问题

  1. 停止轮询新消息
  2. 完成他们的工作并将偏移提交给Kafka
  3. 优雅地关闭应用程序

Spring-Cloud-Stream是否默认此工作?那么是否有相关文件?

供您参考,我使用的春云流Kafka如下。

#Message handler
@Component
public class MessageHandler {

    @Bean
    public Consumer<MyEvent> handleMessage() {
        return message -> {...}
    }
...
}


#application.yml
spring:
  cloud:
    stream:
      bindings:
        handleMessage-in-0:
          destination: myevent
          group: test-group
          consumer:
            maxAttempts: 2
            concurrency: 10
      function:
        definition: handleMessage
...

共有1个答案

殳勇
2023-03-14

正如您引用的答案中所提到的,您可以使用ListenerContainerCustomizer bean增加容器属性(默认10秒)。

@Bean
public ListenerContainerCustomizer<AbstractMessageListenerContainer<?, ?>> customizer() {
    return (container, dest, group) -> container.getContainerProperties()
            .setShutdownTimeout(30_000L);
}
 类似资料:
  • 我用的是spring kafka 1.2.2。释放目前,我已经为没有BackOffPolicy和AlwaysRetryPolicy的容器配置了重试模板。确认模式为手动或立即。 当一个SIGTERM出现时,我会让当前消息被处理,当@KafkaListener再次被调用时,我会在容器上抛出RuntimeException,该容器会无限期重试并持续抛出异常。一段时间后,SIGKILL被发出,容器被停止(

  • 问题内容: 使用PyObjC,您可以使用Python编写适用于OS X的Cocoa应用程序。我可以使用Python编写本机iPhone应用程序吗? 问题答案: 目前尚不可用,目前仅有的可用于访问iPhone SDK的语言为C / C ++,Objective C和Swift。 出于技术原因,将来这种情况不会改变,但短期内我不会屏息。 也就是说,Objective-C和Swift确实不是太吓人… 带

  • 问题内容: 我想将通用映射分组到中,但不能使用,因为我的实体已经扩展了另一个。所以我需要一个类似下面的界面: 我想像下面这样使用它: 我的意思是说这项工作可行吗? 我可以在接口上使用@MappedSuperclass注释吗? Hibernate是否支持接口? 问题答案: 号如前所述这里: JPA不直接支持接口或变量关系。

  • 作为自动缩放presto集群工作的一部分,我们喜欢在EC2终止presto worker之前优雅地关闭它。以下命令后 curl-v-xput--data'“shutting_down”'-h“content-type:application/json”http://250.0.46.167:8081/v1/info/state worker日志立即指示“com.facebook.presto.se

  • 我正在开发一个由嵌入式Tomcat支持的Spring Boot应用程序,我需要通过以下步骤开发一个优雅的关机: 停止处理新的HTTP请求(停止web容器) 处理所有已接受的请求 关闭Spring ApplicationContext 附注。Spring Boot 1.5.20版本,Java 8

  • 我正在尝试了解Spring Boot如何关闭分布式Hazelcast缓存。当我连接然后关闭第二个实例时,我会得到以下日志: 似乎当我关闭它时,第二个实例并没有向第一个实例报告它正在正确关闭。我们在它无法连接到它几秒钟后收到警告,因此从集群中删除。 它表示它正在尝试运行一个关闭挂钩,但它所做的最后一个报告仍然是“活动的”,并且它从来没有像本文中提到的那样转到“关机”或“关机”。 pom。xml 只是