ActiveMQ支持的传输协议
------------------------------------------------------
ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、Http(s)、VM。 其中配置Transport Connector的文件在activeMQ安装目录的conf/activemq.xml中的
<transportConnectors>标签之内。
下面就具体来看看每一个通讯协议
(1)Transmission Control Protocol(TCP)
a.这是默认的Broker配置,TCP的Client监听端口61616
b.在网络传输数据前,必须要序列化数据,消息是通过一个叫wire protocol的来序列化成字节流。默认情况下,ActiveMQ把wire protocol叫做OpenWire,它的目的是促使网络上的效率和数据快速交互。
c.TCP连接的URI形式如: tcp://hostname:port?key=value&key=value, 后面的参数是可选
d.TCP传输的优点:
(d.1)TCP协议传输可靠性高,稳定性强
(d.2)高效性:字节流方式传递,效率很高
(d.3)有效性、可用性:应用广泛,支持任何平台
e.关于Transport协议的可配置参数,可以参加官网:http://activemq.apache.org/configuring-version-5-transports.html
f.TCP配置示例:
<transportConnectors>
<transportConnector name="tcp" uri="tcp://localhost:61616?trace=true"/>
</transportConnectors>
(2)New I/O API Protocol(NIO)
a.NIO协议和TCP协议类似,但NIO更侧重于底层的访问操作。它允许开发人员对同一资源可有更多的client调用和服务端有更多的负载。
b.适合使用NIO协议的场景:
(b.1)可能有大量的Client去连接到Broker上,一般情况下,大量的Client去连接Broker是被操作系统的线程所限制的。因此,NIO的实现比TCP需要更少的线程去运行,所以建议使用NIO协议
(b.2)可能对于Broker有一个很迟钝的网络传输,NIO比TCP提供更好的性能。
c.NIO连接的URI形式: nio//hostname:port?key=value
d.Transport Connector配置示例:
<transportConnectors>
<transportConnector name="nio" uri="nio://localhost:61618?trace=true"/>
</transportConnectors>
(3)User Datagram Protocol(UDP)
a.UDP和TCP的区别
(a.1)TCP是一个原始流的传递协议,意味着数据包是有保证的,换句话说,数据包是不会被复制和丢失的。UDP,另一个方面,它是不会保证数据包的传递的。
(a.2)TCP是一个稳定可靠的数据包传递协议,意味着数据在传递的过程中不会丢失。这样确保了在发送和接收之间能够可靠的传递。相反,UDP仅仅是一个链接协议,所以它没有可靠性之说。
b.TCP是被用在稳定可靠的场景中使用的;UDP通常用在快速数据传递和不怕数据丢失的场景中
c. UDP连接的URI形式:udp://hostname:port?key=value
d. Transport Connector配置示例:
<transportConnectors>
<transportConnector name="udp" uri="udp://localhost:61618?trace=true"/>
</transportConnectors>
(4)Secure Sockets Layer Protocol(SSL)
a.连接的URL形式: ssl://hostname:port?key=value
b.Transport Connector配置示例:
<transportConnectors>
<transportConnector name="ssl" uri="ssl://localhost:61618?trace=true"/>
</transportConnectors>
(5)HyperText Transfer Protocol(HTTP/HTTPS)
a.像web和email等服务需要通过防火墙来访问,Http可以使用这种场合
b.连接的URI形式:http://hostname:port?key=value
c.Transport Connector配置示例:
<transportConnectors>
<transportConnector name="http" uri="http://localhost:8080?trace=true"/>
</transportConnectors>
(6)VM Protocol(VM)
a. VM transport允许在VM内部通信,从而避免了网络传输的开销。这时候采用的连接不是socket连接,而是直接的方法调用。
b. 第一个创建VM连接的客户会启动一个embed VM broker,接下来所有使用相同的broker name的VM连接都会使用这个broker,当这个broker上所有的连接都关闭的时候,这个broker也会自动关闭。
c. 连接的URI形式: vm//brokerName?key=value
ActiveMQ支持的传输协议的更多相关文章
- ActiveMQ学习笔记(7)----ActiveMQ支持的传输协议
1. 连接到ActiveMQ Connector: Active提供的,用来实现连接通讯的功能,包括:client-to-broker,broker-to-broker.ActiveMQ允许客户端使用 ...
- 分布式-信息方式-ActiveMQ支持的传输协议和配置
ActiveMQ支持的传输协议和配置■ Connector: ActiveMQ提供的,用来实现连接通讯的功能.包括: client-to-broker ...
- JMS学习十(ActiveMQ支持的传输协议)
ActiveMQ提供了一种连接机制,这种连接机制使用传输连接器(TransportConnector)实现客户端与代理(client - to - broker)之间的通信. 网络连接器(networ ...
- ActiveMQ支持的消息协议
ActiveMQ支持哪些协议 ActiveMQ支持多种协议传输和传输方式,允许客户端使用多种协议连接ActiveMQ支持的协议:AUTO,OpenWire,AMQP,Stomp,MQTT等Active ...
- 消息中间件-ActiveMQ支持的消息协议
package com.study.mq.a1_example.helloworld.queue; import org.apache.activemq.ActiveMQConnectionFacto ...
- 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议
1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl. 恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与 ...
- ActiveMQ传输协议
ActiveMQ默认的传输协议是TCP 在activemq的配置文件 /conf/activemq.xml可对配置文件进行修改和查看
- ActiveMQ 笔记(五)ActiveMQ的传输协议
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 面试思考题: 默认的61616端口如何更改 你生产上的连接协议如何配置的?使用tcp吗? 一.Activ ...
- 还在羡慕BAT等公司的大流量的架构吗,commonrpc 是一个以netty 传输协议框架为基础(支持FTP)
还在羡慕BAT等公司的大流量的架构吗?让你的java系统引用解耦,互相独立,commonrpc 就可以办到.commonrpc 是一个以netty 传输协议框架为基础, 自定义 spring shce ...
随机推荐
- android布局居中
添加android:gravity="center" 或者android:layout_gravity="center"属性.android:gravity用于 ...
- Java 容器(list, set, map)
java容器类库的简化图: (虚线框表示接口, 实线框表示普通的类, 空心箭头表示特定的类实现了接口, 实心箭头表示某个类可以生成箭头所指的类对象) 继承Collection的主要有Set 和 Lis ...
- 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
- 怎样用ZBrush对模型进行渲染
关于如何使用ZBrush®3D图形绘制软件雕刻僵尸模型,Fisker老师用了6个章节共41课时,从人体躯干和骨骼雕刻,到衣服.鞋子制作,再到顶点着色,向大家一一展示了雕刻过程,其中分享了很多ZBrus ...
- 【2016-11-3】【坚持学习】【Day18】【Oracle 数据类型 与C#映射关系】
大部分类型的对应关系:原文:http://2143892.blog.51cto.com/2133892/499353 序号 Oracle数据类型 .NET类型 GetOracleValue类型 DbT ...
- sublime 安装笔记
sublime 安装笔记 下载地址 安装package control 根据版本复制相应的代码到console,运行 按要求重启几次后再按crtl+shift+p打开命令窗口 输入pcip即可开始安装 ...
- 第13章 Java常用类
1.自动装箱和自动拆箱 自动装箱:基本类型就自动的封装到与它相同类型的包装中:如: 创建一个对象时:Integer i = 100;本质上是编译器编译时为我们添加了:Integer i = new I ...
- 读取MP3专辑图片
#define WIN32_LEAN_AND_MEAN #define NOWINRES #define NOSERVICE #define NOMCX #define NOIME #include ...
- [转]Python yield 使用浅析
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield ...
- Poisson泊松分布
PMF 若随机变量\(K\)的概率质量函数PMF为 \[ P(K = k) = e^ {-\lambda} \frac {\lambda^k}{k!} \] 则称:\(K \sim Poisson(\ ...