在学习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的简单实现相关推荐

  1. Activemq MQTT 简单消息推送示例

    Activemq MQTT 简单消息推送示例 简介     简单使用 MQTT 连接 Activemq 进行消息推送的示例代码 编写详情 环境准备     使用docker启动Activemq,查看M ...

  2. Activemq Jms 简单示例

    Activemq Jms 简单示例 简介     简单的 Activemp JMS 示例代码 activemq 运行     简单使用docker启动一个: docker run -dit --nam ...

  3. ActiveMQ的简单使用

    转:http://wosyingjun.iteye.com/blog/2314681 ActiveMQ的简单使用 ActiveMQ是一种开源的,实现了JMS规范的,面向消息(MOM)的中间件,为应用程 ...

  4. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  5. ActiveMQ的简单例子应用

    ActiveMQ是一种消息中间件,它实现了JMS规范,提供点对点和订阅-发布两种模式.下面介绍下ActiveMQ的使用: 一.环境的搭建 首先我们需要下载ActiveMQ的安装包,下载地址http:/ ...

  6. 遇见JMS[1] —— activeMQ的简单使用

    1.JMS Java Message Service,提供API,供两个应用程序或者分布式应用之间异步通信,以传送消息. 2.相关概念 提供者:实现JMS规范的消息中间件服务器 客户端:发送或接收消息 ...

  7. ActiveMQ简单介绍+简单实例

    本文出自:http://www.open-open.com/lib/view/open1388994166156.html 1. JMS基本概念      JMS(Java Message Servi ...

  8. ActiveMQ在C#中的应用

    ActiveMQ是个好东东,不必多说.ActiveMQ提供多种语言支持,如Java, C, C++, C#, Ruby, Perl, Python, PHP等.由于我在windows下开发GUI,比较 ...

  9. ActiveMQ入门教程(三) - ActiveMQ P2P版的HelloWorld

    为什么80%的码农都做不了架构师?>>>    在这篇博客,我们来写一个ActiveMQ版的HelloWorld. 其实,要想写程序的话,还是要先了解一下JMS规范里的东西. 可以参 ...

最新文章

  1. 强化学习样本复杂性综述
  2. HTML基础:文本列表实例2(9)
  3. k8s灰度更新_通过rancher部署k8s过程实战分享
  4. 二叉树和栈的基本操作
  5. duilib消息机制的介绍
  6. 【英语学习】【WOTD】reverberate 释义/词源/示例
  7. .NET开发 正则表达式中的 Bug
  8. Fiber的深度理解
  9. 联想笔记本键盘亮屏幕不亮_联想笔记本电脑开机键亮但是黑屏?键盘没反应?
  10. 把网页整个保存为pdf
  11. 省市县行政区划代码sql及源地址
  12. 《重装系统后弹出对话框(无法打开这个应用(无法使用内置管理员账户打开xx,请使用其他账户登录,……))》
  13. 城市大数据发展评价指标体系
  14. docker服务器版搭建pikachu靶场
  15. ExcelVBA 之可选参数
  16. 关于Android Https网络连接失败奇葩问题 ExtCertPathValidatorException
  17. 相位解包裹 matlab,二维相位解包裹matlab
  18. 你和PPT高手之间,就只差一个iSlide,新版本支持Mac、WPS、Office
  19. Mathematica 训练课(12)常用注释方法
  20. 淘宝app商品详情原数据接口V1新版接口

热门文章

  1. 技术部负责人的爱恨情仇
  2. mysql 编程 备份_mysql 容灾备份
  3. JimuReport积木报表1.1.09 版本发布,免费的企业级 Web 报表工具
  4. Android 集成Thinker 教程
  5. 小学二年级计算机课游戏,小学二年级适合玩的课堂游戏
  6. Xmanager5 Passive 图形界面安装oracle,无法使用鼠标
  7. Google glog
  8. 浅析计算机主板故障,浅析计算机主板故障及维修
  9. CDA LEVELⅠ2021新版模拟题二(附答案)
  10. Linux对main未定义引用,当对体量使用实时时,对main的未定义引用