activemq的topic队列,在消费者1宕机时,发送给消费者1的消息会被阻塞并持久化起来吗?
我设置的producer和consumer的应答模式是CLIENT_ACKNOWLEDGE,也设置了持久化消息和持久化topic,如果消费者端未消费该消息,则消费者端不会调用acknowledge()方法,经测试发现如果消费者宕机则消息会丢失,不会重新读取进来?这是什么情况?messageListener的onMessage方法如下:
@Override
public void onMessage(Message message) {
try {
TextMessage text = (TextMessage) message;
String msg = text.getText();
String jmsType = message.getJMSType();
//获取已连接的在线机构
for (String organId : WebSocketHandler.webSocketSessionMap.keySet()) {
boolean flag = jmsType.equalsIgnoreCase("ID:" + organId);
if (flag) {
boolean hasConsumed = consumeMsg(String.valueOf(organId), msg);
if (!hasConsumed) {
return;
}
}
}
message.acknowledge();
} catch (JMSException e) {
log.error("activemq convert message fail");
log.error(e.getMessage(), e);
}
}
多谢大佬!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论