1.JMS

Java Message Service,提供API,供两个应用程序或者分布式应用之间异步通信,以传送消息。

2.相关概念

提供者:实现JMS规范的消息中间件服务器
客户端:发送或接收消息的应用程序,我们主要开发这个。包括 生产者/发布者客户端 及 消费者/订阅者客户端。
生产者/发布者:创建并发送消息的客户端
消费者/订阅者:接收并处理消息的客户端
消息:应用程序之间传递的数据内容
消息模式:在客户端之间传递消息的方式,JMS中定义了队列和主题两种模式。

3.了解消息模式

3.1 队列模式

客户端:生产者、消费者
队列中的消息只能被一个消费者消费
消费者可以随时消费队列中的消息(应先启动消费者,再启动生产者)

3.2 主题模型

客户端:发布者、订阅者
主题中的消息被所有消费者订阅
消费者不能消费订阅之前就发送到主题中的消息(应先启动订阅者客户端,再启动发布者客户端)

4. JMS编码接口

ConnectionFactory 创建连接到消息中间件的连接工厂
Connection 代表应用程序和消息服务器之间的通信链路
Destination 消息发布和接收的地点,选项为队列或主题
Session 一个发送或接收消息的线程
MessageConsumer 由会话创建。用于接收消息。
MessageProduer 由会话创建。用于发送消息。
Message 在生产者和消费者之间传递的消息对象。由消息头、一组消息属性、一个消息体组成。

5.安装activeMQ

a. 下载

b. 解压

c. 添加环境变量到Path

d. 设置为服务

e. 手动启动(下次开机服务会自动运行)

f. 浏览器访问 http://127.0.0.1:8161 ,默认账号密码为 admin / admin

6.代码

码云下载地址

注1:开发环境为windows + JDK8 + eclipse Mars2 + Maven3.3.9

注2:两种模式都是先启动消费者,后启动提供者

注3:消费者应保持连接,以等待提供者生产数据,再行消费

7.小结

(1)activeMQ 是JMS规范的一种优秀实现。

(2)activeMQ 是消息中间件。消息中间件相当于中介,是一个信息的「中转站」。

(3)activeMQ 有两种模式:队列(点对点)模式 和 主题(订阅)模式。两种模式最大的区别是队列模式『瓜分』消息,主题模式『均沾』消息。

遇见JMS[1] —— activeMQ的简单使用的更多相关文章

  1. 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

    第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...

  2. 【JMS】JMS之ActiveMQ的使用

    这篇文章主要是简单介绍一下JMS和ActiveMQ,以及使用ActiveMQ来写两个demo. 1. JMS是啥 百度百科的解释: JMS即Java消息服务(Java Message Service) ...

  3. ActiveMQ第二弹:使用Spring JMS与ActiveMQ通讯

    本文章的完整代码可从我的github中下载:https://github.com/huangbowen521/SpringJMSSample.git 上一篇文章中介绍了如何安装和运行ActiveMQ. ...

  4. 【ActiveMQ】Spring Jms集成ActiveMQ学习记录

    Spring Jms集成ActiveMQ学习记录. 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.REL ...

  5. 深入浅出 JMS(二) - ActiveMQ 入门指南

    深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...

  6. 理解面向消息中间件及JMS 以及 ActiveMQ例子

    为了帮助你理解ActiveMQ的意义,了解企业消息传送背景和历史是很重要的.讨论完企业消息传送,你将可以通过一个小例子了解JMS及其使用.这章的目的是简要回顾企业消息传送及JMS规范.如果你已经熟悉这 ...

  7. JMS实战——ActiveMQ实现Pub-Sub

    前言 上篇博客<JMS实战--ActiveMQ>介绍了ActiveMQ的安装,并实现了简单的PTP模型.这篇博客我们来看一下Pub-Sub模型,之后来总结一下JMS. 实现 项目结构 其中 ...

  8. Simple guide to Java Message Service (JMS) using ActiveMQ

    JMS let’s you send messages containing for example a String, array of bytes or a serializable Java o ...

  9. JMS and ActiveMQ first lesson(转)

    JMS and ActiveMQ first lesson -- jms基础概念和应用场景 2011-6-18 PM 9:30 主讲:kimmking <kimmking@163.com> ...

随机推荐

  1. 深入浅出讲解:php的socket通信[转]

    对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问: 1.         什么是TCP/IP.UDP?2.         Sock ...

  2. scrapy_全站爬取

    如何查询scrapy有哪些模版? scrapy genspider –list 如何创建crawl模版? scrapy genspider -t crawl 域名 scrapy genspider - ...

  3. python_如何使用临时文件

    案例: 某项目中,从传感器中获得采集数据,每收集到1G的数据后做是数据分析,最终只保留数据分析的结果,收集到的数据放在内存中,将会消耗大量内存,我们希望把这些数据放到一个临时的文件中 临时文件不能命名 ...

  4. 转载-Linux Shell 数组建立及使用技巧

    转载自:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 如侵犯版权,请联系我删除 linux shell在编程方面比win ...

  5. junit--eclipse插件

    现在比较火的IDE是JIDE,但是我一直在使用eclipse.对eclipse比较熟悉了,也有了感情了.这里就以eclipse为例,来整理下eclipse中junit插件的使用. 添加junit包到自 ...

  6. sublime markdown编辑配色

    Boxy package control : install package 选择Boxy theme preferences->settings配置: { "color_scheme ...

  7. js执行函数报错Cannot set property 'value' of null怎么解决?

    js执行函数报错Cannot set property 'value' of null 的解决方案: 原因:dom还没有完全加载 第一步:所以js建议放在body下面执行, 第二步:window.on ...

  8. html中几种常见长度单位介绍

    其实css中的长度单位一共有8个,分别是px,em,pt,ex,pc,in,mm,cm: px:像素(Pixel),相对于设备的长度单位,像素是相对于显示器屏幕分辨率而言的.譬如,WONDOWS的用户 ...

  9. Git远程管理[五]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 相关命令 git clone https://github.com/guohongz ...

  10. CSS——元素分类

    1.标签元素被分为三大类:块状元素.内联元素和内联块元素. (1)常见块状元素有:<div>.<p>.<h1>...<h6>.<ol>.&l ...