ActiveMQ学习笔记
更新时间:2023-10-24 07:53:01 阅读量: 综合文库 文档下载
一.ACTIVEMQ是什么
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息中间件, 应用中引入中间件的好处是减少服务器之间的依赖关系,提高扩展性,在没有引入消息中间件的情况可能出现如下:
出现服务器多依赖的情况,不方面扩展,而引入消息中间件后如
从图中可以看出引入消息中间件后,每个服务器只依赖于消息中间件,而且在应用中这种依赖关系式一种弱依赖关系
ActiveMQ特性列表
1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP 2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
3. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性 4. 支持通过JDBC和journal提供高速的消息持久化 5. 从设计上保证了高性能的集群,客户端-服务器,点对点
1.为什么异步调用是高效的?
Systems that rely upon synchronous requests typically have a limited ability to scale because eventually requests will begin to back up, thereby slowing the whole system.
《ActiveMQ in Action》一书在解释同步调用的系统为什么会存在性能问题,或者反过来说为什么异步调用的系统性能要好的时候是这样解释的:同步调用总会有可能出现请求因为没有及时响应而导致阻塞的情况发生!
2.JMS的消息格式
和所有其他的通信规范一样,JMS也会定义消息的格式,如同http的request和response格式一样,jms的消息也分成header和body两部分:
header部分主要是由预定义属性和一些自定义属性组成,一些重要的预定义属性有: JMSDestination:消息的目的地
JMSDeliveryMode:消息的投递模式,有两种Persistent和Nonpersistent JMSExpiration:消息的期限 JMSMessageID:消息的ID JMSPriority:消息的优先级 ....
body部分,JMS定义了六种java类型,它们是:
1 Message —The base message type. Used to send a message with no payload, only headers and properties. Typically used for simple event notification.
2 TextMessage —A message whose payload is a String. Commonly used to send simple textual and XML data.
3 MapMessage —Uses a set of name/value pairs as its payload. The names are of
type String and the values are a Java primitive type.
4 BytesMessage —Used to contain an array of uninterpreted bytes as the payload. 5 StreamMessage—A message with a payload containing a stream of primitive Java types that’s filled and read sequentially.
6 ObjectMessage—Used to hold a serializable Java object as its payload. Usually used for complex Java objects. Also supports Java collections.
3.消息的发布机制
所有MOM现在都支持两种消息发布机制:point-to-point和publish-subscribe。 点对点通信机制如下图:
订阅发布通信机制如下图:
补充:关于Request/Response风格的消息通信.
Although the JMS spec doesn’t define request/reply messaging as a formal messaging domain, it does provide some message headers and a couple of convenience classes for handling basic request/reply messaging.
JMS没有定义这种风格的通信机制,但是通过一些消息header的属性和工具类是很容易实现这种通信模型的。这里所需要的header主要是JMSReplyTo和JMSCorrelationID两个属性. The JMSReplyTo specifies the destination where a reply should be sent, and the
JMSCorrelationID in the reply message specifies the JMSMessageID of the request message. These headers are used to link the reply message(s) to the original request message.
JMSReplyTo指明了响应应该送交的地址,很显然这是请求消息要提供的。JMSCorrelationID则用来指明这则消息是回复给那个请求的,因此它应该是响应消息里要提供的。
The convenience classes for handling basic request/reply are the QueueRequestor and the
TopicRequestor. These classes provide a request() method that sends a request message and waits for a reply message through the creation of a temporary destination where only one reply per request is expected.
而工具类,则是指QueueRequestor和TopicRequestor的request方法,这个方法会发送一个请求消息,然后等待一个响应消息。
二.安装与启动ActiveMQ
安装
1. 在http://activemq.apache.org/download.html 下载5.4.0发行包,解压到需要安装ActiveMQ的文件夹,记
为/path/to/activemq。
2. unix环境activemq文件夹需要执行权限,执行如下命令 chmod -R 755 /path/to/activemq
启动
1. window环境运行/path/to/activemq/bin/activemq.bat 2. unix环境运行/path/to/activemq/bin/activemq
测试
ActiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试ActiveMQ是否成功启动
1. window环境运行 netstat -an|find \ 2. unix环境运行netstat -an|grep 61616
监控
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/ demo:http://127.0.0.1:8161/demo/
三.如何使用ActiveMQ
项目中需要把activemq-all-5.3.0.jar 加入 classpath
ActiveMQ的编码模板:
正在阅读:
ActiveMQ学习笔记10-24
经济计量学--习题与解答10-29
煤矿固定抱索器架空乘人装05-13
村镇供水站定岗标准12-06
国际关系史(刘德斌)课后题答案06-09
小学语文人教版(部编)二年级上册《19雾在哪里》优质课教案省级比赛获奖教案公开课教师面试试讲教案n01309-13
新课标下如何培养低年级学生的口语交际能力10-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- ActiveMQ
- 笔记
- 学习
- 2014年版专业教学大纲模板及要求
- 2-加油站地下水调查评估培训材料 - 图文
- 新视野大学英语第三版第四册读写教程课后习题翻译
- 作文讲解与学案
- 后勤部门绩效考核办法
- 三角函数式的化简与证明
- 介入试题
- 环境法案例:淮河流域污染引发的环境法问题
- ABAQUS实例分析 - 图文
- 初等代数的超越函数 李臣杰
- 桐庐县政府投资项目竣工验收管理办法
- 2007年中国博客市场调查报告
- 2010小升初英语每日一练69-100
- 生理学B 作业1
- 2019年质量知识竞赛试题库及答案(超强)
- 地铁详勘大纲 - 图文
- 钻井队生产管理制度及安全操作规程(修订)1 - 图文
- 基于Simulink的MFSK系统的实现 设计报告
- 红河州组织人事系统首届职工运动会比赛成绩表
- 过秦论练习及答案