ActiveMQ Network of Brokers中broker2单向连broker1拉取消息是否可行
ActiveMQ单向主动拉取消息配置方案
完全可以实现你描述的需求,ActiveMQ 网络桥接(Network of Brokers)天然支持由安全侧的 broker2 主动向公网侧的 broker1 发起单向连接并拉取消息,无需 broker1 主动向内发起连接,完全适配你的安全策略要求。
具体配置说明
所有配置仅需在安全网络内的 broker2 侧完成,无需修改 broker1 的网络桥接配置(仅需确保 broker1 的服务端口对 broker2 的出口IP开放即可)。
1. 核心配置示例
修改 broker2 的conf/activemq.xml文件,在networkConnectors节点下添加如下配置:
<networkConnectors> <!-- 单向连接broker1的消息拉取连接器 --> <networkConnector name="pull_from_broker1" uri="static:(tcp://[broker1的公网IP/域名]:61616)" userName="broker1配置的连接用户名(如有认证)" password="broker1配置的连接密码(如有认证)" duplex="false" networkTTL="3" prefetchSize="500" dispatchAsync="true" > <!-- 可选配置:仅拉取指定队列/主题的消息,不需要全量同步可以加上 --> <dynamicallyIncludedDestinations> <queue physicalName="需要同步的业务队列名"/> <topic physicalName="需要同步的业务主题名"/> </dynamicallyIncludedDestinations> </networkConnector> </networkConnectors>
2. 关键参数说明
uri:填写 broker1 的对外可访问地址,由 broker2 主动向该地址发起连接,完全符合安全网络仅允许向外发起请求的限制duplex:设置为false,禁用双向通信,仅保留 broker2 到 broker1 的单向连接prefetchSize:调整单次拉取的消息数量,可根据业务消费速度调整,实现轮询批量拉取的效果
3. 效果验证
启动 broker2 后,可在 broker1 的管控台看到来自 broker2 的消费连接,生产者发往 broker1 对应队列/主题的消息会自动同步到 broker2,安全网络内的消费者直接连接 broker2 消费即可。
内容的提问来源于stack exchange,提问作者lando
相关产品推荐
相关产品推荐

