当前位置: 首页 > news >正文

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

 

转载于:https://www.cnblogs.com/hapjin/p/5434566.html

相关文章:

  • 断点上有一个斜杠
  • 第九周
  • S3C2440-IIS放音
  • 记住密码超简单实现(C#)
  • CSS布局居中
  • Servlet和JSP关系浅析
  • selenium 获取某元素的 某属性 的值
  • BestCoder Round #81 (div.2) 1003 String
  • 2010年架构社区回顾:悠长的一年
  • 【VS开发】使用VS2010创建MFC ActiveX工程项目
  • Java Resource路径小结
  • 在ubuntu 15.04下安装VMware Tools
  • ZeroMQ(java)中监控Socket
  • hdu1418 欧拉公式
  • S3C2440-DMA
  • hexo+github搭建个人博客
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Cumulo 的 ClojureScript 模块已经成型
  • iOS 系统授权开发
  • JAVA多线程机制解析-volatilesynchronized
  • Java-详解HashMap
  • js学习笔记
  • Node项目之评分系统(二)- 数据库设计
  • Objective-C 中关联引用的概念
  • quasar-framework cnodejs社区
  • uva 10370 Above Average
  • 从零开始在ubuntu上搭建node开发环境
  • 简析gRPC client 连接管理
  • 深入浏览器事件循环的本质
  • 算法---两个栈实现一个队列
  • 译有关态射的一切
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 主流的CSS水平和垂直居中技术大全
  • 06-01 点餐小程序前台界面搭建
  • Nginx实现动静分离
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​queue --- 一个同步的队列类​
  • #NOIP 2014#Day.2 T3 解方程
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (二)JAVA使用POI操作excel
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计高校学生选课系统
  • (四)Linux Shell编程——输入输出重定向
  • .Net core 6.0 升8.0
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器