在我的代码中,RMQConsumer是一个spring,它在Spring容器初始化时被初始化。当Spring准备就绪时,它就会开始侦听队列中的RMQ消息,而不管整个Spring容器是否已经准备好。我只想在库伯茨吊舱状态为1/1时才开始消息的消耗。在滚动部署过程中,除非新豆荚为1/1状态,否则旧豆荚不会终止,这会导致吊舱数量几乎翻倍,并且提高了在我的情况下由于某些原因而不需要的消耗率。
我尝试的是删除了在Bean channel.basicConsume中执行的RMq api的RMq方法。并将代码添加到端点‘/ postStart’‘下的Rest控制器方法中,我在postStart生命周期钩子下的kubernates部署文件中配置了该方法,该方法似乎不起作用。这个钩子在spring应用程序之前被调用,甚至打印它的第一个日志(用时间戳验证)。
发布于 2021-12-22 17:39:01
您能检查一下readinessProbe在这个用例中是否有帮助。
请参考下面的文章,其中有帮助。
提升活性和准备性作为弹簧启动核心概念https://spring.io/blog/2020/03/25/liveness-and-readiness-probes-with-spring-boot
https://stackoverflow.com/questions/70444973
复制相似问题