第一种:点对点

#发布者
public class Producer { private static final String userName = ActiveMQXAConnectionFactory.DEFAULT_USER;
private static final String password = ActiveMQXAConnectionFactory.DEFAULT_PASSWORD;
private static final String brokerURL = "tcp://192.168.178.X:61616"; public static void main(String[] args) throws JMSException {
//1.创建连接工厂类
ConnectionFactory factory = new ActiveMQXAConnectionFactory(userName, password, brokerURL);
//2.创建连接
Connection connection = factory.createConnection();
//3.启动连接
connection.start(); //4.创建会话对象session(事务transacted为true,参数2不生效)
//acknowledgeMode:
Session session = connection.createSession(true,Session.AUTO_ACKNOWLEDGE); //5.目的地
Queue queue = session.createQueue("mq-test-01");
//7.创建发送者
MessageProducer producer = session.createProducer(queue);
for(int i=1;i<=10;i++) {
//6.消息对象
TextMessage message = session.createTextMessage();
message.setText("消息"+i);
//8.发送消息
producer.send(message);
}
//9.会话提交
// session.commit(); //10.关闭连接
connection.close();
}
}
#消费者
public class Consumer1 { private static final String userName = ActiveMQXAConnectionFactory.DEFAULT_USER;
private static final String password = ActiveMQXAConnectionFactory.DEFAULT_PASSWORD;
private static final String brokerURL = "tcp://192.168.178.X:61616"; public static void main(String[] args) throws JMSException {
//1.创建连接工厂类
ConnectionFactory factory = new ActiveMQXAConnectionFactory(userName, password, brokerURL);
//2.创建连接
Connection connection = factory.createConnection();
//3.启动连接
connection.start(); //4.创建会话对象session(事务transacted为true,参数2不生效)
//acknowledgeMode:
Session session = connection.createSession(true,Session.AUTO_ACKNOWLEDGE); //5.目的地
Queue queue = session.createQueue("mq-test-01"); //6.接收消息对象
MessageConsumer consumer = session.createConsumer(queue); //7.通过监听器接收消息
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage)message;
//获取消息
try {
String msg = textMessage.getText();
System.out.println(msg);
} catch (JMSException e) {
}
}
}); }
}

第二种: 发布者/订阅者

启动顺序:先订阅、再发布

#订阅者
public class Subscriber1 { private static final String userName = ActiveMQXAConnectionFactory.DEFAULT_USER;
private static final String password = ActiveMQXAConnectionFactory.DEFAULT_PASSWORD;
private static final String brokerURL = "tcp://192.168.129.10:61616"; public static void main(String[] args) throws JMSException {
//1.创建连接工厂类
ConnectionFactory factory = new ActiveMQXAConnectionFactory(userName, password, brokerURL);
//2.创建连接
Connection connection = factory.createConnection();
//3.启动连接
connection.start(); //4.创建会话对象session(事务transacted为true,参数2不生效)
//acknowledgeMode:
Session session = connection.createSession(true,Session.AUTO_ACKNOWLEDGE); //5.目的地
Topic topic = session.createTopic("mq-test-02");
//6.接收消息对象
MessageConsumer consumer = session.createConsumer(topic); //7.通过监听器接收消息
consumer.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage)message;
//获取消息
try {
String msg = textMessage.getText();
System.out.println(msg);
} catch (JMSException e) {
}
}
}); }
}
#发布者
public class Publisher { private static final String userName = ActiveMQXAConnectionFactory.DEFAULT_USER;
private static final String password = ActiveMQXAConnectionFactory.DEFAULT_PASSWORD;
private static final String brokerURL = "tcp://192.168.129.10:61616"; public static void main(String[] args) throws JMSException {
//1.创建连接工厂类
ConnectionFactory factory = new ActiveMQXAConnectionFactory(userName, password, brokerURL);
//2.创建连接
Connection connection = factory.createConnection();
//3.启动连接
connection.start(); //4.创建会话对象session(事务transacted为true,参数2不生效)
//acknowledgeMode:
Session session = connection.createSession(true,Session.AUTO_ACKNOWLEDGE); //5.目的地
Topic topic = session.createTopic("mq-test-02");
//7.创建发送者
MessageProducer producer = session.createProducer(topic);
for(int i=1;i<=10;i++) {
//6.消息对象
TextMessage message = session.createTextMessage();
message.setText("消息"+i);
//8.发送消息
producer.send(message);
//设置自动持久化
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
}
//9.会话提交
// session.commit(); //10.关闭连接
connection.close();
}
}

activemq两种实现方式的更多相关文章

  1. Web APi之认证(Authentication)两种实现方式【二】(十三)

    前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...

  2. Android中BroadcastReceiver的两种注册方式(静态和动态)详解

    今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...

  3. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  4. JavaScript 函数的两种声明方式

    1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...

  5. Redis两种持久化方式(RDB&AOF)

    爬虫和转载请注明原文地址;博客园蜗牛:http://www.cnblogs.com/tdws/p/5754706.html Redis所需内存 超过可用内存怎么办 Redis修改数据多线程并发—Red ...

  6. struts2+spring的两种整合方式

    也许有些人会因为学习了struts1,会以为struts2.struts1与spring的整合也是一样的,其实这两者相差甚远.下面就来讲解一下struts2与spring的整合两种方案.(部分转载,里 ...

  7. easyui datagride 两种查询方式

    easyui datagride 两种查询方式function doReseach() { //$('#tt').datagrid('load', { // FixedCompany: $('.c_s ...

  8. 【Visual Lisp】两种出错处理方式

    两种出错处理方式:一种是对出错函数进行重定义,一种是对错误进行捕捉处理. ;;============================================================= ...

  9. 两种include方式及filter中的dispatcher解析

    两种include方式 我自己写了一个original.jsp,另外有一个includedPage.jsp,我想在original.jsp中把includedPage.jsp引进来有两种方式: 1.& ...

随机推荐

  1. HttpClient不同版本超时时间的设置

    引自 https://www.cnblogs.com/hisunhyx/p/5028391.html 3.X是这样的 HttpClient client=new DefaultHttpClient() ...

  2. 洛谷P4609 [FJOI2016]建筑师(第一类斯特林数+组合数)

    题面 洛谷 题解 (图片来源于网络,侵删) 以最高的柱子\(n\)为分界线,我们将左边的一个柱子和它右边的省略号看作一个圆排列,右边的一个柱子和它左边的省略号看作一个圆排列,于是,除了中间的最高的柱子 ...

  3. Sqli-labs less 5

    Less-5 这里说一下,有很多的blog是翻译或者copy的,这关正确的思路是盲注.从源代码中可以看到,运行返回结果正确的时候只返回you are in....,不会返回数据库当中的信息了,所以我们 ...

  4. Codeforces 449D Jzzhu and Numbers(高维前缀和)

    [题目链接] http://codeforces.com/problemset/problem/449/D [题目大意] 给出一些数字,问其选出一些数字作or为0的方案数有多少 [题解] 题目等价于给 ...

  5. [HDU1532]Drainage Ditches

    最大流模板题 今天补最大流,先写道模板题,顺便写点对它的理解 最大流问题就是给一个幽香有向图,每一条边有容量,问若从$s$点放水,最多会有多少水流到$t$ 为了解决整个问题,第一步我们当然要找到一条路 ...

  6. 搭建vsftpd

    安装完软件以后 1.建立用户 adduser ftp passwd 密码 2.修改vsftp.conf文件 anonymous_enable改为NO,阻止匿名上传 Anon_mkdir_write_e ...

  7. 消除重复 Exercise07_15

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:消除重复 */ public class Exercise07_15 { ...

  8. “过时”的SpringMVC我们到底在用什么?深入分析DispatchServlet源码

    之前已经分析过了Spring的IOC(<零基础带你看Spring源码--IOC控制反转>)与AOP(<从源码入手,一文带你读懂Spring AOP面向切面编程>)的源码,本次就 ...

  9. [bzoj1009](HNOI2008)GT考试 (kmp+矩阵快速幂加速递推)

    Description 阿 申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字.他的不吉利数学 A1A2...Am(0&l ...

  10. concat函数,concat_ws函数,group_concat函数,repeat()函数

    MySQL中concat函数使用方法:CONCAT(str1,str2,-) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...