ActiveMQ的简单实现
在学习JMS过程中,网上找了很多资料,选定ActiveMQ做为JMS的组件开发,于是实现了一个简单的例子。
第一步:下载ActiveMQ,测试实例采用的是apache-activemq-5.6.0,启动消息服务的Server,activemq.bat。
第二步:Eclipse新建了一个工程:导入jar包有:activemq-core-5.6.0.jar、activemq-pool-5.3.0.jar、kahadb-5.6.0.jar、slf4j-api-1.6.4.jar、slf4j-nop-1.6.4.jar
消息发送者Sender类:
package com.zyujie.jms;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.booleanValue(),Session.AUTO_ACKNOWLEDGE);// 获取session注意参数值zyujie-queue是一个服务器的queue,须在在ActiveMq的console配置destination = session.createQueue("zyujie-queue");// 得到消息生成者【发送者】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("Hello ActiveMq 发送的消息" + i);// 发送消息到目的地方System.out.println("发送消息:" + "Hello ActiveMq 发送的消息" + i);producer.send(message);}}
}
消息接收类:
package com.zyujie.jms;import javax.jms.Connection;
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.booleanValue(),Session.AUTO_ACKNOWLEDGE);// 获取session注意参数值zyujie-queue是一个服务器的queue,须在在ActiveMq的console配置destination = session.createQueue("zyujie-queue");consumer = session.createConsumer(destination);while (true) {TextMessage message = (TextMessage) consumer.receive(1000);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) {}}}
}
这样一个简单的ActiveMQ实例运行成功。
ActiveMQ的特点优势介绍网上有很多,就没有写出来了。ActiveMQ也可以自行修改很多配置信息,比如修改其端口号等等。
关于ActiveMQ整合Spring的开发,还在学习中。
ActiveMQ的简单实现相关推荐
- Activemq MQTT 简单消息推送示例
Activemq MQTT 简单消息推送示例 简介 简单使用 MQTT 连接 Activemq 进行消息推送的示例代码 编写详情 环境准备 使用docker启动Activemq,查看M ...
- Activemq Jms 简单示例
Activemq Jms 简单示例 简介 简单的 Activemp JMS 示例代码 activemq 运行 简单使用docker启动一个: docker run -dit --nam ...
- ActiveMQ的简单使用
转:http://wosyingjun.iteye.com/blog/2314681 ActiveMQ的简单使用 ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程 ...
- ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...
- ActiveMQ的简单例子应用
ActiveMQ是一种消息中间件,它实现了JMS规范,提供点对点和订阅-发布两种模式.下面介绍下ActiveMQ的使用: 一.环境的搭建 首先我们需要下载ActiveMQ的安装包,下载地址http:/ ...
- 遇见JMS[1] —— activeMQ的简单使用
1.JMS Java Message Service,提供API,供两个应用程序或者分布式应用之间异步通信,以传送消息. 2.相关概念 提供者:实现JMS规范的消息中间件服务器 客户端:发送或接收消息 ...
- ActiveMQ简单介绍+简单实例
本文出自:http://www.open-open.com/lib/view/open1388994166156.html 1. JMS基本概念 JMS(Java Message Servi ...
- ActiveMQ在C#中的应用
ActiveMQ是个好东东,不必多说.ActiveMQ提供多种语言支持,如Java, C, C++, C#, Ruby, Perl, Python, PHP等.由于我在windows下开发GUI,比较 ...
- ActiveMQ入门教程(三) - ActiveMQ P2P版的HelloWorld
为什么80%的码农都做不了架构师?>>> 在这篇博客,我们来写一个ActiveMQ版的HelloWorld. 其实,要想写程序的话,还是要先了解一下JMS规范里的东西. 可以参 ...
最新文章
- 强化学习样本复杂性综述
- HTML基础:文本列表实例2(9)
- k8s灰度更新_通过rancher部署k8s过程实战分享
- 二叉树和栈的基本操作
- duilib消息机制的介绍
- 【英语学习】【WOTD】reverberate 释义/词源/示例
- .NET开发 正则表达式中的 Bug
- Fiber的深度理解
- 联想笔记本键盘亮屏幕不亮_联想笔记本电脑开机键亮但是黑屏?键盘没反应?
- 把网页整个保存为pdf
- 省市县行政区划代码sql及源地址
- 《重装系统后弹出对话框(无法打开这个应用(无法使用内置管理员账户打开xx,请使用其他账户登录,……))》
- 城市大数据发展评价指标体系
- docker服务器版搭建pikachu靶场
- ExcelVBA 之可选参数
- 关于Android Https网络连接失败奇葩问题 ExtCertPathValidatorException
- 相位解包裹 matlab,二维相位解包裹matlab
- 你和PPT高手之间,就只差一个iSlide,新版本支持Mac、WPS、Office
- Mathematica 训练课(12)常用注释方法
- 淘宝app商品详情原数据接口V1新版接口
热门文章
- 技术部负责人的爱恨情仇
- mysql 编程 备份_mysql 容灾备份
- JimuReport积木报表1.1.09 版本发布,免费的企业级 Web 报表工具
- Android 集成Thinker 教程
- 小学二年级计算机课游戏,小学二年级适合玩的课堂游戏
- Xmanager5 Passive 图形界面安装oracle,无法使用鼠标
- Google glog
- 浅析计算机主板故障,浅析计算机主板故障及维修
- CDA LEVELⅠ2021新版模拟题二(附答案)
- Linux对main未定义引用,当对体量使用实时时,对main的未定义引用