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的更多相关文章

  1. JMS学习二(简单的ActiveMQ实例)

    下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到b ...

  2. JMS学习三(ActiveMQ消息的可靠性)

    下面我们来学习一下消息接受确认和发送持久化消息.消息的过期.消息的选择器和消息的优先级. 一.消息接收确认 1.jms消息只有在被确认之后才认为成功消费了这条消息.消息的成功消费通常包括三个步骤:(1 ...

  3. JMS学习十(ActiveMQ支持的传输协议)

    ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...

  4. JMS学习九(ActiveMQ的消息持久化到Mysql数据库)

    1.将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下 2.修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式 2.1  修改原来的kshadb的 ...

  5. JMS学习六(ActiveMQ消息传送模型)

    ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/Sub Domain. 一.PTP消息传送模型 ...

  6. JMS学习五(ActiveMQ的本地事务)

    1.ActiveMQ的本地事务 在一个JMS客户端,可以使用本地事务来组合消息的发送和接收.JMS Session接口提供了commit和rollback方法.事务提交意味着生产的所有消息被发送,消费 ...

  7. JMS【二】--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 上篇博文JMS[一]--JMS基本概念,我们介绍了消息通信的规范JMS,我 ...

  8. 【转】深入浅出JMS(二)--ActiveMQ简单介绍以及安装

    现实的企业中,对于消息通信的应用一直都非常的火热,而且在J2EE的企业应用中扮演着特殊的角色,所以对于它研究是非常有必要的. 这篇博文介绍一款开源的JMS具体实现——ActiveMQ.ActiveMQ ...

  9. JMS学习八(ActiveMQ消息持久化)

    ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,还有一种内存存储的方式,由于内存不属于持久化范畴,而且如果使用内存队列,可以考虑使用更合适的产品,如ZeroMQ.所以 ...

  10. JMS学习七(ActiveMQ之Topic的持久订阅)

    非持久化订阅持续到它们订阅对象的生命周期.这意味着,客户端只能在订阅者活动时看到相关主题发布的消息.如果订阅者不活动,它会错过相关主题的消息.如果花费较大的开销,订阅者可以被定义为durable(持久 ...

随机推荐

  1. mac10.12.6系统配置clion编写CMakeLists文件运行opencv3

    按照mac10.12.6系统使用cmake安装opencv3.3.0+opencv_contrib-3.3.0下载编译安装好了文件以后,装好clion编译器,新建C++可执行工程,编写代码 opecv ...

  2. Linux 终端快捷键整理

    一.历史命令相关快捷键 快捷键 说明 ↑.↓ 显示历史命令 !! 执行上一个命令 !n 执行历史命令中第 n 条命令 !-n 执行历史命令中倒数第 n 条命令 二.移动相关快捷键 快捷键 说明 Ctr ...

  3. DRF框架QQ登录功能

    用户模块---QQ登录 流程图 QQ登录文档:http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-0 流程简述 ...

  4. PAT甲题题解-1081. Rational Sum (20)-模拟分数计算

    模拟计算一些分数的和,结果以带分数的形式输出注意一些细节即可 #include <iostream> #include <cstdio> #include <algori ...

  5. [2017BUAA软工助教]个人得分总表(至alpha结束)

    一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队 a团队得分 a贡献分 总分(不计) 总分(记) 15061119 7 9.5 12 9 45.75 ...

  6. 1.AKATSUKI

    ## 1.AKATSUKI - “晓”,日本漫画<火影忍者>及其衍生作品中的一个秘密组织. - 成立之初是为了给自己的国家带来和平. ## 2.团队成员 - 邱东宝 - 211606325 ...

  7. Linux内核设计与实现 第一章 第二章

    第一章 Linux内核简介 Unix特点: (1)     Unix很简洁,仅仅提供几个几百个系统调用并且有一个非常明确的设计目的 (2)     在Unix中,所有的东西都被当作文件对待,通过一套相 ...

  8. 带状态论文粗读(三)[引用openstate的相关论文阅读]

    一 文章名称:FLOWGUARD: Building Robust Firewalls for Software-Defined Networks 发表时间:2014 期刊来源:--- 解决问题: 一 ...

  9. Java运算符、switch、数组、排序

    1.Java的运算符,分为四类:算数运算符.关系运算符.逻辑运算符.位运算符 运算符例子:22.25(十进制转化为二进制,8421码)0010 0010 (22)0010 0101 (25) 位运算符 ...

  10. idea打jar包没有MANIFEST文件坑

    看到横线处没有,将此处的main\java 删除掉 meta-inf文件夹必须在src文件夹下,才能打包成功, idea自动加了 main/java 会导致打包时,找不到该manifest文件,不会将 ...