遇见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> ...
随机推荐
- 共轭梯度算法求最小值-scipy
# coding=utf-8 #共轭梯度算法求最小值 import numpy as np from scipy import optimize def f(x, *args): u, v = x a ...
- 通过psping测试结果,初步判断远端服务器的状态
1.psping的输出结果为如下正常显示时,说明远端服务器的IP及端口可用 C:\Users\he.liming>psping 139.219.66.205:4352 PsPing v2.10 ...
- GPU 实现 RGB -- YUV 转换 (OpenGL)
GPU 实现 RGB -- YUV 转换 前言 RGB --> YUV 转换的公式是现成的,直接在 CPU 端转换的话,只需要遍历每个像素,得到新的 YUV 值,根据其内存分布规律,合理安排分布 ...
- CSS常用字体名称
CSS样式中常用的字体名称 css中引入字体: @font-face { font-family: "AncientWar"; src: url('style/css/font ...
- Selenium+java+idea的安装与配置
当前操作系统:Windows10pro x64 一.安装JDK 1.到jdk官网下载一个对应当前系统的安装包(Selenium仅支持JDK1.8及以上版本) 网址:http://www.oracle. ...
- 通过重写 class 的 ToString() 来简化获取 enum 的 DescriptionAttribute 值
通过重写 class 的 ToString() 来简化获取 enum 的 DescriptionAttribute 值 目录 一.常见的 enum 类型 二.演变:class 版本的 enum 类型 ...
- WPF中获取系统本身自带的控件模板(XAML)
每个控件都有自己默认的模板,这是MS本身就编写好的,如果我们能够得到这些模板的XAML代码,那么它将是学习模板的最好的示例,要想获得某个控件ctrl的默认模板,请调用以下方法: string GetT ...
- QQ浏览器等window.innerHeight首次读取的高度不正确的解决办法
问题描述 移动端的页面,需要处理首屏为一满屏.并且,采用javascript计算高度来设置容器高度的方案. <!DOCTYPE html> <html> <head> ...
- jQuery控制input只能输入两位数字和小数(金额)
function num(obj){ obj.value = obj.value.replace(/[^\d.]/g,""); //清除"数字"和". ...
- Java I/O基础
字节流和字符流的区别,字节流一次读取一个字节,字符流一次读取的是一个Unicode码,读取了2个字节. 可以以文本编辑器打开的可以使用字符流读取,否则用字符流读取可能就会出错.图像文件就需要用字节流读 ...