概述

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位

详细

代码下载: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相关推荐

  1. Activemq Jms 简单示例

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

  2. 【转】使用Jmeter针对ActiveMQ JMS Point To Point压力测试

    准备工作 针对JMS类型的Sampler,需要额外的jar包(这里用的是apache ActiveMQ,将下载的AMQ apache-activemq-5.5.0根目录下的activemq-all-5 ...

  3. jms activemq_带有ActiveMQ的JMS

    jms activemq 带有ActiveMQ的JMS JMS是Java消息服务的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制. JMS以存储和转发的方式跨应用程序异步传递数据. 应用程 ...

  4. 带有ActiveMQ的JMS

    带有ActiveMQ的JMS JMS是Java Message Service的缩写,它提供了一种以松散耦合,灵活的方式集成应用程序的机制. JMS以存储和转发的方式跨应用程序异步传递数据. 应用程序 ...

  5. 基于JMS规范的ActiveMQ

    为什么80%的码农都做不了架构师?>>>    基于JMS规范的ActiveMQ JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台 ...

  6. ActiveMQ知识概括

    ActiveMQ知识概括 ActiveMQ简介 Java实现ActiveMQ JMS规范与落地 ActiveMQ的broker Spring,SpringBoot整合ActiveMQ ActiveMQ ...

  7. activemq高级客户端选项

    2019独角兽企业重金招聘Python工程师标准>>> 我们经常希望维持队列中的消息,按一定次序转发给消息者.然而当有多个JMS Session和消息消费者实例的从同一个队列中获取消 ...

  8. activemq消息持久化_ActiveMQ 5.x中的消息持久性

    activemq消息持久化 我被问了很多关于ActiveMQ如何存储消息(或在某些情况下不存储)的基本知识. 这是它的高级解释. 注意,上下文在JMS中. 如果您使用ActiveMQ的非JMS客户端( ...

  9. ActiveMQ 5.x中的消息持久性

    我被问了很多关于ActiveMQ如何存储消息(或在某些情况下不存储)的基本知识. 这是它的高级解释. 注意,上下文在JMS中. 如果您使用ActiveMQ的非JMS客户端(即STOMP,AMQP,MQ ...

最新文章

  1. wordpress去掉category怎么操作让url更简洁友好
  2. 第6天-css笔记 三大定位-定位 子绝父相 与精灵图
  3. 吴恩达深度学习—— 3.4 多个例子中的向量化
  4. FCKeditor.NET的配置、扩展与安全性经验交流
  5. 卡巴斯基:揭开“火焰”病毒(Flame)的神秘面纱
  6. dbeaver 修改数据_GitHub 上 5 款超好用的数据库 GUI 带你玩转 MongoDB、Redis、SQL 数据库...
  7. win7专业版激活方案
  8. 手机电子书分享:大前研一经典《专业主义》
  9. 文件上传到ftp服务器命令,ftp上传文件到服务器命令
  10. [Filco]蓝牙连接键盘
  11. 【算法】动态规划之计算二项式系数(C++源码)
  12. 3500x架构_r5 3500x处理器深度实用评测3500x游戏性能测评
  13. linux下没有yum命令,linux下配置yum的三种方法与yum命令详解
  14. nodejs 结合 wechaty 实现你的微信群聊机器人二(iPad 协议)
  15. 一款极简的原生农历日期滚动选择器(小程序版本)体积小,速度快
  16. 04_Python简答题
  17. linux 'stack'未声明(在此函数内第一次使用,未定义的引用`__stack_chk_fail'
  18. 分布式事务之TX-LCN
  19. CCleaner科学使用方法
  20. 信息隐藏(Information Hiding)原则

热门文章

  1. 欢迎参加“城市大脑与应急管理”专家研讨会
  2. 2020未来科学大奖获奖名单揭晓
  3. 计算机、数学、运筹学等领域32个重要算法
  4. 国际基因编辑科技发展报告
  5. Nature最新研究:超9000学者每5天发1篇论文,这些高产作家背后的科研圈
  6. 科技|全球首款飞行汽车开始量产!下月开始预售,2023年后或可实现一键打“飞车”...
  7. NLP 解决方案是如何被深度学习改写的?
  8. 乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
  9. 腾讯云发布全链路数据开发平台WeData,大数据开发迈入新时代
  10. Eclipse的java代码出错:The import org.apache cannot be resolved