ActiveMQ(四)

由于项目原因,很长时间没有更新了。今天本篇主要解释一些名词,为下一步的ActiveMQ的Queue使用奠定基础

 

在开始演示前先引入一些概念:

Q:ActiveMQ Queue中有哪些消息交互模式(传送模式)?

A:ActiveMQ遵循JMS标准分为:

1.PERSISTENT(持久性消息)

    这是 ActiveMQ 的默认传送模式,此模式保证这些消息只被传送一次和成功使用一次。对于这些消息,可靠性是优先考虑的因素。可靠性的另一个重要方面是确保持久性消息传送至目标后,消息服务在向消费者传送它们之前不会丢失这些消息。这意味着在持久性消息传送至目标时,消息服务将其放入持久性数据存储。如果消息服务由于某种原因导致失败,它可以恢复此消息并将此消息传送至相应的消费者。虽然这样增加了消息传送的开销,但却增加了可靠性。 

2.NON_PERSISTENT(非持久性消息) 

    保证这些消息最多被传送一次。对于这些消息,可靠性并非主要的考虑因素。  此模式并不要求持久性的数据存储,也不保证消息服务由于某种原因导致失败后消息不会丢失。

Q:如何设置消息交互模式(传送模式)?

A:在ActiveMQ中有2种方法来设置,分别适用于不同的场景。我更偏向于第一种处理方式,有利于消息的封装和统计。

1.在消息生产者中直接设置模式,

producer.setDeliveryMode(int deliveryMode);

此模式的适用于单一类型的消息生产者。

2.在每条消息中设置,

 

void send(Destination destination, Message message, int deliveryMode, int priority,long timeToLive);

 

void send(Message message, int deliveryMode, int priority, longtimeToLive);

  其中 deliveryMode 为传送模式,priority 为消息优先级,timeToLive 为消息过期时间。

Q:想要使用自定义的Queue来管理消息,该如何做?

A:继承ActiveMQDestination并实现Queue(javax.jms包)接口

 

相关推荐