JMS学习(二)之ActiveMQ
1,ActiveMQ是Apache实现的基于JMS的一个消息服务器。下面记录ActiveMQ的一些基本知识。
2,ActiveMQ connectors:ActiveMQ providesconnectors, a connectivity mechanism that provides client-to-broker communications as well as broker-to-broker communications.
connectors是一种连接机制,提供client 到 broker 的连接,以及 borker 之间的连接。 broker可以理解为消息服务器。
3,一些 connectivity concepts :
1) Connector URIs, that make it possible to address brokers---Client要想连接到消息服务器,需要知道服务器的地址,即Connector URIs
ActiveMQ中默认配置好的一个URI是 tcp://localhost:61616,它就表示在61616端口上创建一个TCP连接到localhost
在ActiveMQ中 TCP连接支持自动重连。通过配置 composite URIs 实现自动重连。
2) Transport connectors, which are used to expose brokers to clients---Client连接消息服务器时,使用Transport connectors进行连接
在ActiveMQ的配置文件 conf/activemq.xml 中配置connectors。

可以修改<transportConnector>添加新的连接。修改配置文件后,需要重启ActiveMQ生效。
Client连接Broker可用的协议有:
1)Tcp协议。提供可靠连接
wire protocol:How messages are serialized from and to a byte-sequence is defined by the wire protocol.
由于网络之间只能传输字节流,故需要序列化。wire protocol 就是用来定义序列化方式的。ActiveMQ中默认的 wire protocol 是OpenWire.
OpenWire main purpose is to be network efficient and allow fast exchange of messages over the network.
总之,就是 the TCP transport connector is used to exchange messages serialized to OpenWire wire format over the TCP network.
2)NIO New I/O API Protocol
对于NIO,它底层还是使用TCP传输协议,并使用OpenWire作为序列化协议。但是 transport connector 的实现使用的是 NIO API。使用NIO的好处如下:
You have a large number of clients you want to connect to the broker。---支持大量的客户端连接,因为相对于TCP Transport connector,NIO connector处理的每个client所需要的线程很少。
You have a heavy network traffic to the broker。---当网络流量较大时,也可以使用NIO
配置使用NIO的示例图如下:

可以看出,基本与TCP配置一致,只是NIO所用的端口为61618
3) Network connectors, which are used to create networks of brokers---提供 各个 broker 之间的连接
4) Discovery Agents, that allow the discovery of brokers in a cluster
JMS学习(二)之ActiveMQ的更多相关文章
- JMS学习二(简单的ActiveMQ实例)
下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到b ...
- JMS学习三(ActiveMQ消息的可靠性)
下面我们来学习一下消息接受确认和发送持久化消息.消息的过期.消息的选择器和消息的优先级. 一.消息接收确认 1.jms消息只有在被确认之后才认为成功消费了这条消息.消息的成功消费通常包括三个步骤:(1 ...
- JMS学习十(ActiveMQ支持的传输协议)
ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...
- JMS学习九(ActiveMQ的消息持久化到Mysql数据库)
1.将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下 2.修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式 2.1 修改原来的kshadb的 ...
- JMS学习六(ActiveMQ消息传送模型)
ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/Sub Domain. 一.PTP消息传送模型 ...
- JMS学习五(ActiveMQ的本地事务)
1.ActiveMQ的本地事务 在一个JMS客户端,可以使用本地事务来组合消息的发送和接收.JMS Session接口提供了commit和rollback方法.事务提交意味着生产的所有消息被发送,消费 ...
- JMS【二】--ActiveMQ简单介绍以及安装
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文JMS[一]--JMS基本概念,我们介绍了消息通信的规范JMS,我 ...
- 【转】深入浅出JMS(二)--ActiveMQ简单介绍以及安装
现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ ...
- JMS学习八(ActiveMQ消息持久化)
ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,还有一种内存存储的方式,由于内存不属于持久化范畴,而且如果使用内存队列,可以考虑使用更合适的产品,如ZeroMQ.所以 ...
- JMS学习七(ActiveMQ之Topic的持久订阅)
非持久化订阅持续到它们订阅对象的生命周期.这意味着,客户端只能在订阅者活动时看到相关主题发布的消息.如果订阅者不活动,它会错过相关主题的消息.如果花费较大的开销,订阅者可以被定义为durable(持久 ...
随机推荐
- Jq_打印
利用IE自带的WebBrowser进行打印 打印判断: if(factory.object)//打印设置的判断 factory.printing.PageSetup(); else alert(& ...
- Leetcode(力扣) 整数反转
Leetcode 7.整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: -123 输出: -321 注意: 假设我们的环境只能存储得下 32 位的有符 ...
- 20135220谈愈敏Blog2_操作系统是如何工作的
操作系统是如何工作的 谈愈敏 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计 ...
- 2013337朱荟潼 Linux第四章读书笔记——进程调度
第4章 进程调度 0. 总结 调度:调度是一个平衡的过程.一方面,它要保证各个运行的进程能够最大限度的使用CP:另一方面,保证各个进程能公平的使用CPU. 调度功能:决定哪个进程运行以及进程运行多长时 ...
- 关于github的使用心得
https://github.com/JavaLizheng/test git常用命令: git config :配置git git add:更新working directory中的文件至stagi ...
- 派生类&简单工厂模式
派生类&简单工厂模式 git链接: Operation3.1.1 题目描述的代码部分的解释 首先是声明一个Rand类作为父类,然后两个子类RandNumber类和RandOperation类, ...
- 小学四则运算APP 第一个冲刺阶段 第三天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布是在与团队成员解决了昨天问题的基础上,再增加了几个界面,增加了一些功能,修改与增加的代 ...
- hao360恶意篡改IE首页——修复方法
设置浏览器首页空白或自定义后,点击开始菜单,找到IE浏览器,右键进入属性,找到shortcut里面“目标”,你会看到里面链接到的是hao360什么乱糟糟的,这才是以上问题的关键原因.删除图1中红色内容 ...
- C语言入门:05.scanf函数
一.变量的内存分析 1.字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”. (1)内存以“字节为单位”
- [菜鸟]HTTP 与 HTTPS 的区别
HTTP 与 HTTPS 的区别 分类 编程技术 基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议)是一种用于分布式.协作式和超媒体信息系统的应用层协议. 简 ...