activemq - ActiveMq - 持久主题 - 并发
问题描述
我有多个持久订阅者正在收听持久主题。比如说,所有订阅者都被配置为同时处理“2-8”的消息。
在这些订阅者中,由于某些运行时依赖性(例如,外部服务不可用)而无法处理消息,因此该订阅者抛出自定义RuntimeException
以允许 ActiveMq 重新传递消息 7 次(默认)。我在 Activemq 管理控制台中看到的是,对于这个特定的订阅者有太多的重新传递尝试 - 另外,我看到出队计数急剧增加,对于一条消息,它增加了更多 36 并且不一致。为什么?我做错什么了吗?
我的Listener factory
配置
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setMessageConverter(messageConverter());
factory.setConnectionFactory(connectionFactory);
factory.setPubSubDomain(true);
factory.setSubscriptionDurable(true);
factory.setSessionTransacted(true);
factory.setSessionAcknowledgeMode(Session.SESSION_TRANSACTED);
factory.setConcurrency("2-8");
factory.setClientId("topicListener2");
return factory;
解决方案
推荐阅读
- excel - 检索给定范围内具有特定颜色背景的所有 excel 单元格名称
- android - 谷歌 IAP 订阅
- azure - 在 Azure Blob 存储项上设置 ContentType
- itext - 使用临时文件方法登录 iText Java 而不是依赖系统内存
- javascript - 移动菜单下拉问题
- firebase-realtime-database - 使用 Tableau Web 数据连接器将 Tableau Public 连接到 Firebase
- java - 为什么我的 servlet request.getParameter 返回 null
- c# - 绘制形状 C# 的路径
- ios - 更新xcode后突然出现IDEWorkspaceChecks.plist文件
- json - 将 JSON 对象作为 POST 请求发送时出错 [VB.NET]