activemq的多个broker之间的消息共享

2024-04-23 07:38

本文主要是介绍activemq的多个broker之间的消息共享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

假设activemq有两个broker服务,A和B。

在A的activemq.xml的broker标签下添加如下配置:

<networkConnectors>  

            <networkConnector uri="static:(tcp://172.16.15.111:61616,tcp://172.16.15.111:61626)" duplex="true"/>  

        </networkConnectors>

该配置可以让消息从A到B,或者从B到A。但只能流动一次。也就是不能从A到B再回到A。

如果duplex="false"则只能从A到B。


那么如何能让消息来回流转,使A和B自由共享消息呢?

在activemq.xml的policyEntries标签下(注意这里需要在A和B上都配置)做如下配置:

<policyEntry queue=">" enableAudit="false">
                     <networkBridgeFilterFactory>
                         <conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/>
                     </networkBridgeFilterFactory>
                 </policyEntry>

该配置可以实现消息回流。


客户端连接broker的时候使用容错机制"failover:(tcp://172.16.15.111:61616,tcp://172.16.15.111:61626)",这样当某个broker挂了,客户端会自动连接别的broker。

以上配置也间接实现了activemq的均衡负载。


不过这种均衡负载是针对broker的,也就是说如果A上连了一个客户端,B上连了两个,那么A上的一个客户端消费的和B上的两个客户端加起来相等。

如果要三个客户端均分的话,需要给networkConnector标签添加一个属性,也就是在duplex="true"后面添加conduitSubscriptions="false"。它的意思是多个网络消费者是否被当做一个消费者来对待。

这篇关于activemq的多个broker之间的消息共享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/928179

相关文章

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python批量替换多个Word文档的多个关键字的方法

《Python批量替换多个Word文档的多个关键字的方法》有时,我们手头上有多个Excel或者Word文件,但是领导突然要求对某几个术语进行批量的修改,你是不是有要崩溃的感觉,所以本文给大家介绍了Py... 目录工具准备先梳理一下思路神奇代码来啦!代码详解激动人心的测试结语嘿,各位小伙伴们,大家好!有没有想

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

JAVA中安装多个JDK的方法

《JAVA中安装多个JDK的方法》文章介绍了在Windows系统上安装多个JDK版本的方法,包括下载、安装路径修改、环境变量配置(JAVA_HOME和Path),并说明如何通过调整JAVA_HOME在... 首先去oracle官网下载好两个版本不同的jdk(需要登录Oracle账号,没有可以免费注册)下载完