activeMQ操作手册.docx
- 文档编号:2919563
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:12
- 大小:137.38KB
activeMQ操作手册.docx
《activeMQ操作手册.docx》由会员分享,可在线阅读,更多相关《activeMQ操作手册.docx(12页珍藏版)》请在冰豆网上搜索。
activeMQ操作手册
一、安装部署 1、下载 ,下载0.0WindowsDistribution版本
2、安装直接解压至任意目录(如:
)
3、启动ActiveMQ效劳cmd到bin目录下直接运行:
start
启动成功:
4、ActiveMQ消息治理后台系统:
localhost:
8161/admin(随包附带jetty、可直接启动)
默许用户名:
admin
默许密码:
admin
※在conf/jetty-里能够修改用户和密码
创建一个Queue
二、Queue与Topic的比较
1、JMSQueue执行loadbalancer语义:
一条消息仅能被一个consumer(消费者)收到。
若是在message发送的时候没有可用的consumer,那么它将被保留一直到能处置该message的consumer可用。
若是一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。
一个Queue能够有很多consumer,而且在多个可用的consumer中负载均衡。
注:
点对点消息传递域的特点如下:
• 每一个消息只能有一个消费者。
• 消息的生产者和消费者之间没有时刻上的相关性。
不管消费者在生产者发送消息的时候是不是处于运行状态,它都能够提取消息。
2、Topic实现publish和subscribe语义:
一条消息被publish时,它将发到所有感爱好的定阅者,因此0到多个subscriber将接收到消息的一个拷贝。
可是在消息代理接收到消息时,只有激活定阅的subscriber能够取得消息的一个拷贝。
注:
发布/定阅消息传递域的特点如下:
• 每一个消息能够有多个消费者。
• 生产者和消费者之间有时刻上的相关性。
定阅一个主题的消费者只能消费自它定阅以后发布的消息。
JMS标准予诺客户创建持久定阅,这在必然程度上放松了时刻上的相关性要求。
持久定阅许诺消费者消费它在未处于激活状态时发送的消息。
3、别离对应两种消息模式:
Point-to-Point(点对点),Publisher/SubscriberModel(发布/定阅者)其中在Publicher/Subscriber模式下又有Nondurablesubscription(非持久定阅)和durablesubscription(持久化定阅)2种消息处置方式(支持离线消息)。
注:
在点对点消息传递域中,目的地被成为队列(queue);在发布/定阅消息传递域中,目的地被成为主题(topic)。
三、Point-to-Point(点对点)消息模式开发流程
1、生产者(producer)开发流程():
1.1 创建Connection:
依照url,user和password创建一个jmsConnection。
Java代码
1.ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
2. connection = ();
3. ();
1.2 创建Session:
在connection的基础上创建一个session,同时设置是不是支持事务和ACKNOWLEDGE(签收)标识。
Java代码
1.Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
1.3 创建Destination对象:
需指定其对应的主题(subject)名称,producer和consumer将依照subject来发送/接收对应的消息。
Java代码
1.if (topic) {
2. destination = (subject);
3.} else {
4. destination = (subject);
5.}
1.4 创建MessageProducer:
依照Destination创建MessageProducer对象,同时设置其持久模式。
Java代码
1.MessageProducer producer = session.createProducer(destination);
1.5 发送消息到队列(Queue):
封装TextMessage消息,利用MessageProducer的send方式将消息发送出去。
Java代码
1.TextMessage message = session.createTextMessage(createMessageText(i));
2.(message);
2、消费者(consumer)开发流程():
2.1 实现MessageListener接口:
消费者类必需实现MessageListener接口,然后在onMessage()方式中监听消息的抵达并处置。
Java代码
1.public class ConsumerTool extends Thread implements MessageListener, ExceptionListener
实现onMessage(Messagemessage)方式,实现监听消息的抵达
2.2 创建Connection:
依照url,user和password创建一个jmsConnection,若是是durable模式,还需要给connection设置一个clientId。
Java代码
1.ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
2.Connection connection = ();
3.//是不是是 durable 模式.(离线消息持久化支持)
4.if (durable && clientId !
= null && clientId.length() > 0 && !
"null".equals(clientId)) {
5. (clientId);
6.}
7.(this);
8.();
2.3 创建Session和Destination:
与ProducerTool.java中的流程类似,再也不赘述。
Java代码
1.session = (transacted, ackMode);
2.4创建replyProducer【可选】:
能够用来将消息处置结果发送给producer。
2.5 创建MessageConsumer:
依照Destination创建MessageConsumer对象。
Java代码
1.MessageConsumer consumer = null;
2.if (durable && topic) {
3. consumer = session.createDurableSubscriber((Topic) destination, consumerName);
4.} else {
5. consumer = (destination);
6.}
2.6 消费message:
在onMessage()方式中接收producer发送过来的消息进行处置,并能够通过replyProducer反馈信息给producer
Java代码
1.if (() !
= null) {
2. (()
3. , session.createTextMessage("Reply:
"
4. + ()));
5.}
四、Publisher/Subscriber(发布/定阅者)消息模式开发流程
1、定阅者(Subscriber)开发流程():
1.1 实现MessageListener接口:
在onMessage()方式中监听发布者发出的消息队列,并做相应处置。
Java代码
1.public void onMessage(Message message) {
2. if (checkText(message, "SHUTDOWN")) {
3.
4. try {
5. ();
6. } catch (Exception e) {
7. ();
8. }
9.
10. } else if (checkText(message, "REPORT")) {
11. // send a report:
12. try {
13. long time = () - start;
14. String msg = "Received " + count + " in " + time + "ms";
15. ((msg));
16. } catch (Exception e) {
17. ();
18. }
19. count = 0;
20.
21. } else {
22.
23. if (count == 0) {
24. start = ();
25. }
26.
27. if (++count % 1000 == 0) {
28. System.out.println("Received " + count + " messages.");
29. }
30. }
31.}
1.2 创建Connection:
依照url,user和password创建一个jmsConnection。
Java代码
1.ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(url);
2.connection = ();
1.3 创建Session:
在connection的基础上创建一个session,同时设置是不是支持事务和ACKNOWLEDGE标识。
Java代码
1.session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
1.4 创建Topic:
创建2个Topic, 用于接收发布者发出的消息,用于向发布者发送消息,实现两边的交互。
Java代码
1.topic = ("");
2.con
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- activeMQ 操作手册