ActiveMQ基础09:ConsumerAPI(消息确认,消息过滤)

 

一、消息的确认

Consumer拉取消息后,如果没有做确认acknowledge,此消息不会从MQ中删除。

Consumer拉取消息后,如果未确认,那么消息会被锁定,如果Consumer关闭时,仍然没有确认消息,则释放锁定信息,消息将发送其他的consumer处理

消息一旦处理,应该必须确认,类似数据库中的事务管理机制

测试:开启确认机制,但不确认消息

如果在消息确认前代码出现异常,消息又想重新消费,有两种方案:

1、把Consumer端变成Producer,重新发送此消息到MQ中,让其他Consumer重新消费

2、把未处理的信息写入到日志文件/DB中,再定时清理未处理的消息

 

二、消息过滤

对消息消费者处理的消息数据进行过滤。这种处理可以明确消费者的角色,细分消费者的功能。
设置过滤:
Session.createConsumer(Destination destination, String messageSelector);
过滤信息为字符串,语法类似 SQL92 中的 where 子句条件信息。可以使用诸如 AND、OR、IN、NOT IN 等关键字。详细内容可以查看 javax.jms.Message 的帮助文档。
注意:消息的生产者在发送消息的的时候,必须设置可过滤的属性信息,所有的属性信息设置方法格式为:setXxxxProperty(String name, T value)。 其中方法名中的 Xxxx 是类型,如 setObjectProperty/setStringProperty 等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值