个人整理了些在日常开发中遇到的一些mq的使用特性,做一个小整理(只整理了日常中自己遇到的)
客户端特色
消息传送模式(deliveryMode)
ActiveMQ支持两种消息传送模式:PERSISTENT和NON_PERSISTENT两种。
传送模式分别为:
1. DeliveryMode.PERSISTENT
2. DeliveryMode.NON_PERSISTENT
消息优先级(priority)
消息优先级从0-9十个级别,0-4是普通消息,5-9是加急消息。如果不指定优先级,则默认为4。JMS不要求严格按照这十个优先级发送消息,但必须保证加急消息要先于普通消息到达。
消息过期(timeToLive)
⚠️:默认情况下,消息永不会过期。
=========================
消费者特色
优先级
queue = new ActiveMQQueue(“TEST.QUEUE?consumer.prority=10”);
独占的消费者
consumer = session.createConsumer(queue);
queue = new ActiveMQQueue(“TEST.QUEUE?consumer.exclusive=true”);
⚠️有时候有序处理消息是非常重要的。ActiveMQ4支持独占的消费。ActiveMQ挑选一个MessageConsumer,并把一个队列中所有消息按顺序分派给它。如果消费者发生故障,那么ActiveMQ将自动故障转移并选择另一个消费者。
再次传送策略
1)在使用事务的Session中,调用rollback()方法
2)在使用事务的Session中,调用commit()方法之前就关闭了Session;
3)在Session中使用CLIENT_ACKNOWLEDGE签收模式,并且调用了recover()方法。
=========================