activemq 消息模式流程: ConnnectionFactory --> Connection --> Session --> Message

---ConnectionFactory,通过连接工厂创建连接

ConnectionFactory factory = new ActiveMQConnectionFactory("xxx.properties");
Connection connection = factory.createConnecion();
connection.start();

---session,创建会话
final Session session = connection.createSession(false, AUTO_ACKNOWLEDGE);

---设置JMSReplyTo为一个Destination,表示需要回复的目的地

message.setJMSReplyTo(replyQueue);

---message,创建消息
Message message = session.createTextMessage("jms-active");

---queue,创建队列
Queue queue = new ActiveMQQueue("active_queue");

---topic,创建topic

Topic topic = new ActiveMQTopic("active_topic");

queue与topic不同之处,就在于此。二者的创建方式的不同

---producer,创建生产者
MessageProducer producer = session.createProducer(queue);

---设置是否可持久化

producer.setDeliveryMode(DeliveryMode.persistent或nonpersistent);

--- 设置消息的有效期

producer.setTimeToLive(3600000); 默认是0表示永不过期

---send message,发送消息至queue
producer.send(message);

---consumer,创建消费者
MessageConsumer consumer = session.createConsumer(queue);

---创建只接受特定消息的一个消费者,selector是一个字符串,用来过来消息

sesssion.createConsumer(destination, selector);

---receive msg,接受消息

第一种receive方法没有设置等待时间,所以消费者会一直等待。可通过int timeout设置等待的超时时间

Message receiveMsg = consumer.receive();
(TextMessge)receiveMsg.getText();

可知这种方式不够友好,可改用监听的方式来消费消息

consumer.setMessageListener(new MessageListener(){

  @Override

  public void onMessage(Message m) {

    TextMessage textMsg = (TextMessage) m;

    try{

      System.out.println(textMsg.getText());

    }catch(JMSException e) {

      xxx

    }

  }

});

消费者与生产者通过同一queue来绑定一对一关系

activemq---点对点/发布订阅模式简单代码示例的更多相关文章

  1. ACtiveMQ中间件-发布订阅模式

    前言:ActiveMQ学习心得 1.MQ是什么 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信, ...

  2. SpringBoot2.0之整合ActiveMQ(发布订阅模式)

    发布订阅模式与前面的点对点模式很类似,简直一毛一样 注意:发布订阅模式 先启动消费者 公用pom: <project xmlns="http://maven.apache.org/PO ...

  3. ActiveMQ (二)—发布订阅模式

    ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...

  4. 【ActiveMQ】- 发布/订阅模式

    publish/subscribe 特点:A发送的消息可以被所有监听A的对象的接收,就好比学校的广播,所有的学生都可以收听校园广播信息. 消息生产者: package com.zhiwei.advan ...

  5. 理解JavaScript设计模式与开发应用中发布-订阅模式的最终版代码

    最近拜读了曾探所著的<JavaScript设计模式与开发应用>一书,在读到发布-订阅模式一章时,作者不仅给出了基本模式的通用版本的发布-订阅模式的代码,最后还做出了扩展,给该模式增加了离线 ...

  6. Javascript中理解发布--订阅模式

    Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...

  7. [转] Javascript中理解发布--订阅模式

    发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知. 现实生活中的发布- ...

  8. 【转】Javascript中理解发布--订阅模式

    Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...

  9. RabbitMQ六种队列模式-发布订阅模式

    前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列RabbitMQ六种队列模式-发布订阅 [本文]RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...

随机推荐

  1. Android逆向之旅---基于对so中的函数加密技术实现so加固

    一.前言 今天我们继续来介绍so加固方式,在前面一篇文章中我们介绍了对so中指定的段(section)进行加密来实现对so加固 http://blog.csdn.net/jiangwei0910410 ...

  2. 【转】Office 2003 EXCEL多窗口打开

    转自:http://blog.csdn.net/god_is_gril/article/details/8992587 1.注册表备份开始/运行,输入regedit回车,打开注册表.在注册表界面定位到 ...

  3. 20180826(01)-Java数据结构

    Java 数据结构 Java工具包提供了强大的数据结构.在Java中的数据结构主要包括以下几种接口和类: 枚举 (Enumeration) 位集合(BitSet) 向量 (Vector) 栈 (Sta ...

  4. 整数解 (hdu 2092

    整数解 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. js不区分大小写匹配并代码高亮,且不改变原来文本大小写格式

    //高亮字符串 string: 需要处理的字符串,keyword:键盘输入的内容 function heightLight(string, keyword) { var reg = new RegEx ...

  6. vue双向数据绑定v-model

    1.双向数据绑定 <input v-model="msg" /> <template> <div id="app"> < ...

  7. laravel5.6 操作数据 Eloquent ORM

    建立Users模型 <?php namespace App\Model\Eloquent\Admin; use Illuminate\Database\Eloquent\Model; class ...

  8. AtCoder Grand Contest 012 B - Splatter Painting(dp)

    Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement Squid loves painting v ...

  9. Python中import的使用方法

    源文出处: "import"的本质参照: Python中import机制 python导入自定义模块和包

  10. 如何获取url里面的参数

    想必大家经常会遇到这样的问题吧,每次获取url参数的时候就一阵头疼,那现在我就教大家一个简单的方法,将url的参数转换成一个对象,用的时候直接用对象点出来就好了.不多说,直接上代码 function ...