分布式-信息方式-ActiveMQ的动态网络链接
ActiveMQ的动态网络链接
多播协议 multicast
ActiveMQ使用 Multicast协议将一个 Service和其他的 Broker的 Service连接起来,IP
multicast是一个被用于网络中传输数据到其它一组接收者的技术。 Ipmulticast传统的概念称
为组地址。组地址是ip地址在224.0.0.0到239.255.255.255之间的ip地址。 ActiveMQ broker使
用multicast协议去建立服务与远程的 broker的服务的网络链接
基本的格式配置
multicast: //ipadaddress: port?transportOptions
transportOptions如下
1: group:表示唯一的组名称,缺省值 default
2: minmumwireFormatVersion:被允许的最小的 wireformat版本,缺省为0
3: trace:是否追踪记录日志,默认fa1se
4: useLocalHost:表示本地机器的名称是否为 localhost,默认true
5: datagramSize:特定的数据大小,默认值4*1024
6: timeTolive:消息的生命周期,默认值-1
7:loopBackMode:是否启用 loopback模式,默认false
8: wireFormat:默认用 wireFormat命名
9: wireFormat.*;前缀是 wireFormat
配置示例
1:默认配置,请注意,默认情况下是不可靠的多播,数据包可能会丢失
multicast://default
2.特定的ip和端口
multicast://224.1.2.3:6255
3:特定的ip和端口以及组名
multicast://224.1.2.3: 6255?group=mygroupname
Activemq使用multicast协议的配置格式如下
<broker xmlns="http://activemg.apacheorg/schema/core" brokerName="multicast"
dataDirectory="${activemq.base)/ data">
<networkConnectors>
<neworkConnector name="default-nc" uri="multicast: //default" />
</networkConnectors>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://localhost: 61616"
discoveryUri="multicast: //default" />
</transportConnectors>
</broker>
上面的配置说明
1: uri=“multicast:// default”中的 default是 activemq默认的ip,默认动态的寻找地址
2:“ discoveryUri”是指在 transport中用multicast的 default的地址传递
3:“uri”指动态寻找可利用的地址
4:如何防止自动的寻找地址?
(1)名称为 openwire的 transport,移除 discoveryUri="multicast://default"即可。传输链接用
默认的名称 openwire来配置 broker的tcp多点链接,这将允许其它 broker能够自动发现和链接到
可用的 broker中。
(2)名称为“ default-nc”的 networkConnector,注释掉或者删除即可。
ActiveMQ默认的 networkConnector基于 multicast协议的链接的默认名称是 default-nc,
而且自动的去发现其他 broker,去停止这种行为,只需要注销或者删除掉 default-nc网络链接
(3)使 brokerName的名字唯一,可以唯一识别 Broker的实例,默认是 localhost
Multicast协议和普通的tcp协议
它们是差不多的,不同的是Multicast能够自动的发现其他 broker,从而替代了使用
static功能列表 brokers。用 multicast协议可以在网络中频繁的添加和删除ip不会有影响
multicast协议的好处是:能够适应动态变化的地址。
缺点:自动的链接地址和过度的销耗网络资源。
Discovery协议
Discovery是在 multicast协议的功能上定义的。功能类似与 failover功能。它将动
态的发现multicast协议的 broker的链接并且随机的链接其中一个broker
基本配置格式如下:
discovery: (discoveryAgent URI)?transportOptions
transportations如下:
1: econnectDelay:再次寻址等待时间,缺省值10
2: initial Reconnect Delay:初始化设定再次寻址等待时间,缺省值10
3: maxReconnectDelay:最大寻址等待时间,缺省值3000
4: useExponential Backoff:是否尝试 Backoff重链接,默认是true
5: backOffMultiplier:尝试 Backoff的次数,默认是2
6: maxReconnectAttempt s:如果异常,最大的重新链接个数,默认是0
7: group:组唯一的地址,默认是 default
示例:
discovery: (multicast: //default)?initialReconnectDelay=100
Discovery协议的配置示例
<broker name="foo">
<transportConnectors>
<transport Connector uri="tcp: //localhost: 0" discoveryUri="multicast: //default"/>
</transportConnectors>
</broker>
Peer协议
ActiveMQ提出了 peer transport connector以让你更加容易的去嵌入 broker中网络
中。它将创建一个优于VM链接的p2p网络链接。默认格式如下:
peer: //peergroup /brokerName? key=value
Peer协议基本使用
当我们启动了用peer协议时,应用将自动的启动内嵌 broker,也将会自动的去配置
其它 broker来建立链接,当然了,前提是必须属于一个组。配置如下:
peer: //groupa/broker? persistent=false
另外,生产者和消费者都各自链接到嵌入到自己应用的 broker,并且在在本地的同
个组名中相互访问数据。
Peer协议的基本原理示意图
图8-1

在本地机器断网的情况下,本地的client访问本地 brokerA将任然正常。在断网的情
况下发送消息到本地 brokerA,然后网路链接正常后,所有的消息将重新发送并链接到
brokerB
Fanout协议
Fanout协议是同时链接多个 broker,默认的格式如下:
fanout: (fanoutURI)?key=value
示例: fanout: (static: (tcp: //host1: 61616, tcp: //host2: 61616, tcp: //host3: 61616))
表示client将试图链接到三个 static列表中定义的三个URI
Fanout协议的配置方式如下:
fanout:(discoveryURI?transportOptions
transportOptions如下:
1: initialReconnectdelay:重新链接的等待时间,默认是10
2: maxReconnectDelay:最大重新链接的等待时间,默认是30000
3: useExponentialBack0ff:是否尝试Back0ff重链接,默认是true
4: backOffMultiplier:尝试 Backoff的次数,默认是2
5: maxReconnectAttempts:如果异常,最大的重新链接个数,默认是0
6: fanOutQueues:是否将 topic消息转换 queue消息,默认 false
7: minAckCount: Broker链接的最小数,默认是2
配置示例:
fanout:(static:(tcp: //localhost: 61616, tcp: //remotehost: 61616))?initialReconne
ctDelay=100
特别提醒
Activemq不推荐使 Consumer使用 fanout协议。当 Provider发送消息到多个 broker中,
测试 Consumer可能收到重复的消息
分布式-信息方式-ActiveMQ的动态网络链接的更多相关文章
- 分布式-信息方式-ActiveMQ的集群
ActiveMQ的集群Queue consumer clusters ActiveMQ支持 Consumer对消息高可靠性的负载平衡消费,如果一个 Consumer死掉,该消 ...
- 分布式-信息方式-ActiveMQ静态网络连接的容错
容错的链接Failover Protocol 前面讲述的都是client配置链接到指定的 broker上.但是,如果 Broker的链接失败怎么办呢?此时, Client有两个选项:要么立刻死掉,要么 ...
- 分布式-信息方式-ActiveMQ的Message dispatch高级特性之(指针) Message cursors
Message dispatch高级特性之 Message cursors概述 ActiveMQ发送持久消息的典型处现方式是:当消息的消费者准备就绪时,消息发送系统把存储的 消息 ...
- 分布式-信息方式-ActiveMQ的Destination高级特性3
虚拟destination用来创建逻辑destination,客户端可以通过它来生产和消费消息,它会把消息映射到物理destination. ActiveMQ支持2种方式: 1:虚拟主题(Virtua ...
- 分布式-信息方式-ActiveMQ的Destination高级特性1
ActiveMQ的Destination高级特性 Destination高级特性----->Composite Destinations 组合队列Composite Destinations : ...
- 分布式-信息方式-ActiveMQ的静态网络连接
ActiveMQ的静态网络连接 在一台服务器上启动多个Broker步骤如下:1:把整个conf文件夹复制一份,比如叫做conf22:修改里面的 activ ...
- 分布式-信息方式-ActiveMQ的消息存储持久化
ActiveMQ的消息存储持久化■概述ActiveMQ不仅支持 persistent和 non-persistent两种方式,还支持消息的恢复( recovery)方式PTPQueue的存储是很简单的 ...
- 分布式-信息方式-ActiveMQ基础
ActiveMQ简介 ActiveMQ是什么ActiveMQ是Apache推出的,一款开源全支持JMS.1和J2EE1.4范的JMS Provider实现的信息中间件.(message oriente ...
- 分布式-信息方式-ActiveMQ的Destination高级特性2
使用filtered destinations,在xml配置如下: <destinationInterceptors> <virtualDestinationInterceptor& ...
随机推荐
- python网络爬虫(9)构建基础爬虫思路
目的意义 基础爬虫分5个模块,使用多个文件相互配合,实现一个相对完善的数据爬取方案,便于以后更完善的爬虫做准备. 这里目的是爬取200条百度百科信息,并生成一个html文件,存储爬取的站点,词条,解释 ...
- expdp使用
原文:https://blog.csdn.net/zftang/article/details/6387325 ORACLE EXPDP命令使用详细相关参数以及导出示例: 1. DIRECTORY指定 ...
- redis 学习(二)-- 通用命令
redis 学习(二)-- 通用命令 1. keys pattern 含义:查找所有符合给定模式(pattern)的key 命令 含义 keys * 遍历所有 key keys he[h-l]* 遍历 ...
- linux centos 安装jdk
1.先查看是否已经安装的有java java -version,如果有需要卸载的直接卸载 rpm -qa | grep java 下面这几个可以删除 java-1.7.0-ope ...
- js 发送异步请求
js用XMLHttpRequest发送异步请求 发送GET请求 var xhr = new XMLHttpRequest(); xhr.open('GET',url);//url为请求地址 xhr.r ...
- 给定一个字符串,根据字符出现频率排序--Java实现
题目描述: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入:"tree" 输出:"eert" 解释:'e'出现两次,'r'和't' ...
- tomcat性能优化,内存优化和并发线程连接优化
今天被一同事问到tomcat和内存优化的问题,而网上的资料基本都是来回copy,所以抽时间随便写点.文章中设置的参数都是一个随便写的,具体的还要根据自己的情况来定. 1.内存优化: 说到tomcat不 ...
- vi编辑器中删除文件中所有字符
在命令模式下,将光标移动到文档最上方(使用gg命令),然后输入dG,删除工作区内所有缓存数据. 如果想要删除某行文档以下的内容,将光标移动到文档相应行,然后输入dG即可.
- 【异常】org.apache.phoenix.exception.PhoenixIOException: SYSTEM:CATALOG
1 详细异常信息 rror: SYSTEM:CATALOG (state=,code=) org.apache.phoenix.exception.PhoenixIOException: SYSTEM ...
- 2019-2020-1 20199319《Linux内核原理与分析》第八周作业
可执行程序工作原理 ELF目标文件格式 1.目标文件(ABI,应用程序二进制接口):编译器生成的文件. 2.目标文件的格式:out格式.COFF格式.PE(windows)格式.ELF(Linux)格 ...