activeMQ Jms Demo
概述
详细
代码下载:http://www.demodashi.com/demo/11680.html
一、什么是ActiveMQ
百度解释:
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
https://baike.baidu.com/item/ActiveMQ/7889688?fr=aladdin
二、安装ActiveMQ
windows
访问ActiveMQ官网下载ActiveMq
http://activemq.apache.org/
下载完毕后,直接解压即可,然后进入bin目录,选择运行位数(32位,64位)
1)可以点击InstallService.bat 直接启动
2)也可以点击activemq.bat 安装到window服务,每次电脑启动时就会自动启动
三、访问ActiveMQ
打开浏览器输入:http://127.0.0.1:8161 如下图,登录的名称和密码都是:admin
看到上图即代表登录成功了!!!
四、编写demo代码
Maven项目结构:
代码截图:
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zy.jms</groupId><artifactId>jms</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.9.0</version></dependency></dependencies></project>
生产者:AppProducer
package com.zy.jsm.queue;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/*** Created by Yan on 2017/9/12.*/
public class AppProducer {private static final String url = "tcp://127.0.0.1:61616";private static final String queueName = "queue_message";public static void main(String[] args) throws JMSException {//1.创建连接工场ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);//2.创建连接Connection connection = connectionFactory.createConnection();//3.启动连接connection.start();//4.创建会话Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.创建一个目标Destination destination = session.createTopic(queueName);//6.创建生产者MessageProducer producer = session.createProducer(destination);producer.setDeliveryMode(DeliveryMode.PERSISTENT);for (int i = 0; i < 100; i++) {//7.创建消息TextMessage textMessage = session.createTextMessage("activeMQ" + i);producer.send(textMessage);}System.out.print("所有消息已经全部发送完了");connection.close();}
}
消费者:AppCusumer
package com.zy.jsm.queue;import org.apache.activemq.ActiveMQConnectionFactory;import javax.jms.*;/*** Created by Yan on 2017/9/12.*/
public class AppConsumer {private static final String url = "tcp://127.0.0.1:61616";private static final String queueName = "queue_message";public static void main(String[] args) throws JMSException {//1.创建连接工场ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);//2.创建连接Connection connection = connectionFactory.createConnection();//3.启动连接connection.start();//4.创建会话Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);//5.创建一个目标Destination destination = session.createQueue(queueName);//6.创建消费者MessageConsumer consumer = session.createConsumer(destination);//7.创建一个监听器consumer.setMessageListener(new MessageListener() {public void onMessage(Message message) {TextMessage textMessage = (TextMessage) message;try {System.out.println("接收消息:" + textMessage.getText());} catch (JMSException e) {e.printStackTrace();}}});//connection.close();}
}
五、说明
代码是演示的队列模式,还有一种是主题模式
如果要用主题模式可以修改代码码如下:
Destination destination = session.createQueue(queueName);
改为:
Destination destination = session.createTopic(topicName);
即可!!!
设置持久化:
producer.setDeliveryModel(DeliveryMode.PERSISTENT);
六、比较
队列模式:在点对点的传输方式中,消息数据被持久化,每条消息都能被消费,没有监听QUEUE地址也能被消费,数据不会丢失,一对一的发布接受策略,保证数据完整。
主题模式:在发布订阅消息方式中,消息是无状态的,不保证每条消息被消费,只有监听该TOPIC地址才能收到消息并消费,否则该消息将会丢失。一对多的发布接受策略,可以同时消费多个消息。
代码下载:http://www.demodashi.com/demo/11680.html
注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权
转载于:https://www.cnblogs.com/demodashi/p/8491121.html
activeMQ Jms Demo相关推荐
- Activemq Jms 简单示例
Activemq Jms 简单示例 简介 简单的 Activemp JMS 示例代码 activemq 运行 简单使用docker启动一个: docker run -dit --nam ...
- 【转】使用Jmeter针对ActiveMQ JMS Point To Point压力测试
准备工作 针对JMS类型的Sampler,需要额外的jar包(这里用的是apache ActiveMQ,将下载的AMQ apache-activemq-5.5.0根目录下的activemq-all-5 ...
- jms activemq_带有ActiveMQ的JMS
jms activemq 带有ActiveMQ的JMS JMS是Java消息服务的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制. JMS以存储和转发的方式跨应用程序异步传递数据. 应用程 ...
- 带有ActiveMQ的JMS
带有ActiveMQ的JMS JMS是Java Message Service的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制. JMS以存储和转发的方式跨应用程序异步传递数据. 应用程序 ...
- 基于JMS规范的ActiveMQ
为什么80%的码农都做不了架构师?>>> 基于JMS规范的ActiveMQ JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台 ...
- ActiveMQ知识概括
ActiveMQ知识概括 ActiveMQ简介 Java实现ActiveMQ JMS规范与落地 ActiveMQ的broker Spring,SpringBoot整合ActiveMQ ActiveMQ ...
- activemq高级客户端选项
2019独角兽企业重金招聘Python工程师标准>>> 我们经常希望维持队列中的消息,按一定次序转发给消息者.然而当有多个JMS Session和消息消费者实例的从同一个队列中获取消 ...
- activemq消息持久化_ActiveMQ 5.x中的消息持久性
activemq消息持久化 我被问了很多关于ActiveMQ如何存储消息(或在某些情况下不存储)的基本知识. 这是它的高级解释. 注意,上下文在JMS中. 如果您使用ActiveMQ的非JMS客户端( ...
- ActiveMQ 5.x中的消息持久性
我被问了很多关于ActiveMQ如何存储消息(或在某些情况下不存储)的基本知识. 这是它的高级解释. 注意,上下文在JMS中. 如果您使用ActiveMQ的非JMS客户端(即STOMP,AMQP,MQ ...
最新文章
- wordpress去掉category怎么操作让url更简洁友好
- 第6天-css笔记 三大定位-定位 子绝父相 与精灵图
- 吴恩达深度学习—— 3.4 多个例子中的向量化
- FCKeditor.NET的配置、扩展与安全性经验交流
- 卡巴斯基:揭开“火焰”病毒(Flame)的神秘面纱
- dbeaver 修改数据_GitHub 上 5 款超好用的数据库 GUI 带你玩转 MongoDB、Redis、SQL 数据库...
- win7专业版激活方案
- 手机电子书分享:大前研一经典《专业主义》
- 文件上传到ftp服务器命令,ftp上传文件到服务器命令
- [Filco]蓝牙连接键盘
- 【算法】动态规划之计算二项式系数(C++源码)
- 3500x架构_r5 3500x处理器深度实用评测3500x游戏性能测评
- linux下没有yum命令,linux下配置yum的三种方法与yum命令详解
- nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)
- 一款极简的原生农历日期滚动选择器(小程序版本)体积小,速度快
- 04_Python简答题
- linux 'stack'未声明(在此函数内第一次使用,未定义的引用`__stack_chk_fail'
- 分布式事务之TX-LCN
- CCleaner科学使用方法
- 信息隐藏(Information Hiding)原则
热门文章
- 欢迎参加“城市大脑与应急管理”专家研讨会
- 2020未来科学大奖获奖名单揭晓
- 计算机、数学、运筹学等领域32个重要算法
- 国际基因编辑科技发展报告
- Nature最新研究:超9000学者每5天发1篇论文,这些高产作家背后的科研圈
- 科技|全球首款飞行汽车开始量产!下月开始预售,2023年后或可实现一键打“飞车”...
- NLP 解决方案是如何被深度学习改写的?
- 乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
- 腾讯云发布全链路数据开发平台WeData,大数据开发迈入新时代
- Eclipse的java代码出错:The import org.apache cannot be resolved