activemq-artemis - 即使在所有消息都被消费和确认之后,消息计数也不为零
问题描述
我们已经将 ActiveMQ Artemis 2.16.0 容器化,并将其部署为KEDA的 K8s 部署。
我们使用 STOMP 使用 stomp.py python 模块。ACK 模式在连接上设置为client-individual
and consumerWindowSize
= 0。我们会在阅读该消息后立即予以确认。
问题是,有时,即使在所有消息都被实际使用和确认之后,Web 控制台中的消息计数也不会变为零。当我浏览队列时,我看不到其中的任何消息。这导致 KEDA 不必要地启动 pod。有关此问题,请参阅我在 JIRA 中附加的屏幕截图。
解决方案
我在我的应用程序代码中解决了这个问题。我的要求是一个队列侦听器应该只使用一条消息并优雅地退出。因此,在为消费消息发送 ACK 后不久,我断开了连接,而不是等待睡眠持续时间断开。
谢谢,贾斯汀,花时间在这上面。
推荐阅读
- arrays - 如何比较tcl中的两列
- mongodb - 如何在单个 mongoDB 查询中使用 $match 运算符两次?
- node.js - NodeJS 数据库查询
- python - 在只读模式下使用 openpyxl load_workbook 加载在 Windows 上的 Excel 中打开的工作簿
- azure-functions - 防止 Cosmos DB 返回所有文档,直到在 Azure 函数中查询
- reactjs - 从动态路由转到静态时,组件不会更改状态
- javascript - 来自子级的 VueJS 数组操作
- python - Pandas 按计数分组,然后使用新字符串值更新并保存到原始列
- typescript - 从 TypeScript 中的父类型切换特定子类型
- c# - 使用智能卡在 C# 上编写数字签名程序以签署一批 .xml 文档