ActiveMQ简单实例

来源:互联网 发布:淘宝男士内衣 编辑:程序博客网 时间:2024/04/30 19:21

1.下载ActiveMQ

去官方网站下载:http://activemq.apache.org/

2.运行ActiveMQ

解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。

启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。

3.创建Eclipse项目并运行

创建project:ActiveMQ,并导入apache-activemq-5.5.1\lib目录下需要用到的jar文件,项目结构如下图所示:

3.1. Sender.java


import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProducer;import javax.jms.Session; import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory; public class Sender { private static final int SEND_NUMBER = 5;public static void main(String[] args) {// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地;消息发送给谁. Destination destination;// MessageProducer:消息发送者MessageProducer producer;// TextMessage message; // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jarconnectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");try { // 构造从工厂得到连接对象 connection = connectionFactory.createConnection(); // 启动 connection.start(); // 获取操作连接session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue("FirstQueue");// 得到消息生成者【发送者】producer = session.createProducer(destination); // 设置不持久化,此处学习,实际根据项目决定producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 构造消息,此处写死,项目就是参数,或者方法获取sendMessage(session, producer); session.commit(); } catch (Exception e) {e.printStackTrace();} finally {try {if (null != connection) connection.close(); } catch (Throwable ignore) {}} }public static void sendMessage(Session session, MessageProducer producer) throws Exception {for (int i = 1; i <= SEND_NUMBER; i++) { TextMessage message = session .createTextMessage("ActiveMq 发送的消息" + i); // 发送消息到目的地方 System.out.println("发送消息:" + "ActiveMq 发送的消息" + i); producer.send(message); } } }}}</span>}



3.2.接受者Receiver.java


import javax.jms.ConnectionFactory;import javax.jms.Destination; import javax.jms.MessageConsumer;import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection;import org.apache.activemq.ActiveMQConnectionFactory; public class Receiver { public static void main(String[] args) {// ConnectionFactory :连接工厂,JMS 用它创建连接ConnectionFactory connectionFactory; // Connection :JMS 客户端到JMS Provider 的连接 Connection connection = null; // Session: 一个发送或接收消息的线程 Session session; // Destination :消息的目的地;消息发送给谁.Destination destination; // 消费者,消息接收者 MessageConsumer consumer; connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); try { // 构造从工厂得到连接对象 connection = connectionFactory.createConnection();// 启动 connection.start();// 获取操作连接 session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);// 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置destination = session.createQueue("FirstQueue"); consumer = session.createConsumer(destination); while (true) { //设置接收者接收消息的时间,为了便于测试,这里谁定为100sTextMessage message = (TextMessage) consumer.receive(100000); if (null != message) { System.out.println("收到消息" + message.getText());} else {break;} } } catch (Exception e) {e.printStackTrace();}finally { try {if (null != connection) connection.close();} catch (Throwable ignore) {}}}}}}}



4.注意事项

  1. 最后接收者跟发送者在不同的机器上测试

  2. 项目所引用的jar最后在ActiveMQ下的lib中找,这样不会出现版本冲突。

5.测试过程

因为是在单机上测试,所以需要开启两个eclipse,每一个eclipse都有自身的workspace。我们在eclipse1中运行Receiver,在eclipse2中运行Sender。

刚开始eclipse1中运行Receiver以后console介面没有任何信息,在eclipse2中运行Sender以后,eclipse2中的控制台显示如下信息:

发送消息:ActiveMq 发送的消息Test1
发送消息:ActiveMq 发送的消息Test2

而回到eclipse1中发现控制台界面出现如下信息:

收到消息ActiveMq 发送的消息Test1
收到消息ActiveMq 发送的消息Test2

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 到了怀孕年龄找不到工作怎么办 建筑公司挂靠发生人员伤残怎么办 外地生小孩落北京户口怎么办 户籍档案查不到直系亲属关系怎么办 考过了二建注册怎么办 异地工作辞职回家档案怎么办 离职怎么办档案放在人才市场 人才房住了6年后怎么办 医保辞职后断了怎么办 社保断了生育险怎么办 深圳小产权房水电费纠纷怎么办 有公租房的再婚怎么办 廉租房被没收了怎么办 商铺到期房东不续租怎么办 天津集体户口买不起房怎么办 房东不想续租了怎么办 唯一住房卖掉后户口怎么办 杭州唯一住房卖掉后户口怎么办 唯一一套住房卖掉户口怎么办 房租押金条丢了怎么办 二建证书跟毕业证丢失怎么办 住宅房到70年怎么办 护照号变了机票怎么办 苹果se指纹坏了怎么办 月经推迟怎么办才能快点来 车载支架不粘了怎么办 otpc平板电脑无法开机怎么办 手表表轴掉了怎么办 鸡肉放冰箱臭了怎么办 鸡胸肉熟了腥怎么办 梦幻西游手游手机号换了怎么办 ppt做一半卡住了怎么办 吃了发霉的蚝油怎么办 蛋皮干燥起皮怎么办 wps卡顿资料没保存怎么办 手指受伤肉掉了怎么办 手机被wifi禁了怎么办 母乳一边是咸的怎么办 tcl电视蓝频了怎么办 长虹电视蓝频了怎么办 电视突然蓝频了怎么办