遇见JMS[1] —— activeMQ的简单使用
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的简单使用的更多相关文章
- 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例
第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入 ...
- 【JMS】JMS之ActiveMQ的使用
这篇文章主要是简单介绍一下JMS和ActiveMQ,以及使用ActiveMQ来写两个demo. 1. JMS是啥 百度百科的解释: JMS即Java消息服务(Java Message Service) ...
- ActiveMQ第二弹:使用Spring JMS与ActiveMQ通讯
本文章的完整代码可从我的github中下载:https://github.com/huangbowen521/SpringJMSSample.git 上一篇文章中介绍了如何安装和运行ActiveMQ. ...
- 【ActiveMQ】Spring Jms集成ActiveMQ学习记录
Spring Jms集成ActiveMQ学习记录. 引入依赖包 无论生产者还是消费者均引入这些包: <properties> <spring.version>3.0.5.REL ...
- 深入浅出 JMS(二) - ActiveMQ 入门指南
深入浅出 JMS(二) - ActiveMQ 入门指南 上篇博文深入浅出 JMS(一) – JMS 基本概念,我们介绍了消息通信的规范JMS,这篇博文介绍一款开源的 JMS 具体实现-- Active ...
- 理解面向消息中间件及JMS 以及 ActiveMQ例子
为了帮助你理解ActiveMQ的意义,了解企业消息传送背景和历史是很重要的.讨论完企业消息传送,你将可以通过一个小例子了解JMS及其使用.这章的目的是简要回顾企业消息传送及JMS规范.如果你已经熟悉这 ...
- JMS实战——ActiveMQ实现Pub-Sub
前言 上篇博客<JMS实战--ActiveMQ>介绍了ActiveMQ的安装,并实现了简单的PTP模型.这篇博客我们来看一下Pub-Sub模型,之后来总结一下JMS. 实现 项目结构 其中 ...
- 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 ...
- JMS and ActiveMQ first lesson(转)
JMS and ActiveMQ first lesson -- jms基础概念和应用场景 2011-6-18 PM 9:30 主讲:kimmking <kimmking@163.com> ...
随机推荐
- oracle 查看最大连接数与当前连接数
select count(*) from v$process --当前的连接数 select value from v$parameter where name = 'processes' --数据库 ...
- 02_HTML5+CSS详解第四天
依旧是CSS部分贴个CSS主要知识点总结的链接:http://blog.csdn.net/html5_/article/details/26098273 [自己的笔记做得好乱,以前一直以为是字丑的原因 ...
- encodeURI()和encodeURIComponent()
encodeURI() 返回值 URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换. 说明 该方法会替换所有的字符,但不包括以下字符,即使它们具有适当的UTF-8转义序列: 保留 ...
- HashMap原理总结
来总结一下HashMap的原理 1.HashMap当中有一个内部类,它叫Node,然后这个Node呢,它其实是实现了Map.Entry接口,这个接口当中有几个抽象的方法和几个具体的方法.其中Map.E ...
- python unicode 字节串转成中文问题
字符串:s = r"\u65b0\u6d6a\u5fae\u535a\u6ce8\u518c" 转换为中文:s = s.decode("unicode_escape&qu ...
- c#扩展方法的使用,实现的几个功能
用扩展类写了一个管理类: using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using Syste ...
- 原生JS实现图片轮播
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- bzoj 4815: [Cqoi2017]小Q的表格 [数论]
4815: [Cqoi2017]小Q的表格 题意: 单点修改,查询前缀正方形和.修改后要求满足条件f(a,b)=f(b,a), b×f(a,a+b)=(a+b)*f(a,b) 一开始sb了认为一次只会 ...
- BZOJ 2502: 清理雪道 [最小流]
2502: 清理雪道 题意:任意点出发任意次每条边至少经过一次最小花费. 下界1,裸最小流.... #include <iostream> #include <cstdio> ...
- POJ 1704 Georgia and Bob [阶梯Nim]
题意: 每次可以向左移动一个棋子任意步,不能跨过棋子 很巧妙的转化,把棋子间的空隙看成石子堆 然后裸阶梯Nim #include <iostream> #include <cstdi ...