使用ActiveMQ Artemis在两个WildFly服务器之间构建水平JMS桥

有时有必要将不同的Message Broker连接在一起。 在企业消息传递中,此方案称为桥接。 可以使用JMS和其他协议(例如AMQP,ActiveMQ Artemis核心协议)来完成。 该博客文章重点介绍在WildFly中运行的JMS与两个Apache ActiveMQ Artemis Brokers的桥接。

什么是JMS桥?

JMS桥通常用于连接不同代理或服务器上的队列和主题。 桥将消息从源转发到目标代理,而两个代理不必位于同一群集中。

这使得桥接适合于将消息从一个群集可靠地发送到另一个群集(例如,通过WAN),并且连接可能不可靠。 它也可以像HiveMQ一样用于Message Broker的水平扩展。

横向桥接方案

有两种不同的部署方案。 在此博客文章中,我将使用源代理在WildFly中配置网桥。 也可以在两个Broker的中间使用一个额外的ActiveMQ Broker作为Bridge。

无标题图5
上图显示了我们要配置的方案。 如您所见,我们需要在源Broker上配置一个队列,在目标Broker上配置一个队列,并且需要一些配置以连接这两个队列。

注意:我没有找到更好的设备图像。 因此,我选择了iPhone图像。 随意可视化其他内容;-)

配置源代理

第一步,您必须为源和目标分别下载和解压缩WildFly服务器两次,如上图所示。

在下一步中,您必须配置源WildFly的standalone-full.xml ,该文件位于WildFly的standalone / configuration文件夹中。

打开XML文件后,您必须通过将以下代码段添加到standalone-full.xml中,来将Source Queue添加到Source Broker中:

jmsbridge_source_queue
此代码片段创建一个名为JMSBridgeSourceQueue的新JMS队列。 在下一步中,您必须配置网桥。 桥具有许多配置选项,例如最大批处理时间,最大重试次数等。 这不是本文的一部分。

要启动和运行网桥的下一个更重要的配置是指向先前创建的jms-queue的源标记和包含目标代理的目标队列的配置的目标标记。

jms-bridge-stuff
如您所见,目标代理需要身份验证,因此需要在目标代理上创建应用程序用户。

配置目标代理

配置源代理后,必须配置目标代理。 如前所述,JMS Bridge需要一个应用程序用户,该应用程序用户必须添加到目标代理中,并在源代理standalone-full.xml文件中引用。

可以使用
位于以下位置的add-user.sh脚本
bin文件夹。

在最后一步中,您还必须配置目标代理的standalone-full.xml文件。

jms-bridge-target-queue-2

您必须创建一个与soure Brokers Bridge配置的目标名称相同的JMS队列。 而已。 在最后一步中,您可以启动两个服务器并检查日志文件。 如果两个WildFlies都成功启动且没有任何错误,则表明Bridge已启动并正在运行。

启动经纪人

./standalone.sh -Djboss.socket.binding.port-offset=100 -c standalone-full.xml
./standalone.sh -c standalone-full.xml

结论

可以使用许多属性来配置JMS Bridge。 服务质量,最大批处理时间和最大批处理大小的最大重试次数以及失败重试间隔时间。

玩转您的JMS Bridge!

翻译自: https://www.javacodegeeks.com/2016/11/building-horizontal-jms-bridge-two-wildfly-servers-using-activemq-artemis.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 逻辑备份 物理备份_数据库的逻辑备份和物理备份--非RMAN

数据库的逻辑备份和物理备份--非RMAN,不用借助其他工具,只要归档日志和物理备份就可以实现的备份数据库的备份和恢复常规而且重要,恢复得到理想状态逻辑备份利用EXP备份,从数据库提取写入操作系统文件1.可以导出一个完整的数据库2.也可以导出…

如何在myeclipse中导入jar包?

右键项目名--->Build Path—>Configure Build Path... 会弹出来一个框 在那四个选项选择 Libraries 然后再选择 右边 第二个选项Add External Jars... 然后就是你JAR的路径。一般将导入的外部包放在lib目录下。

python入门if语句练习_python入门视频:09 if语句_练习.mp4

本视频课程目录如下:python6天学习基础课程 ├─01天│ python入门视频:01 计算机组成-硬件设备.mp4│ python入门视频:02 计算机组成-软件设备.mp4│ python入门视频:03 程序的执行流程和小结_.mp4│ pyt…

spring依赖日志_Spring:设置日志记录依赖项

spring依赖日志这篇文章描述了如何在Spring中设置日志依赖。 它基于Dave Syer的帖子中提供的信息 。 这里提供有关Java日志记录框架的提醒。 该代码示例可在GitHub的Spring-Logging-Dependencies目录中找到。 Spring使用Jakarta Commons Logging API(JCL&#xff0…

网页UTF8转换GBK后出现问号?的原因

网页UTF8转换GBK后出现问号"?"的原因 网页编码转换是进行网页解析和处理的第一步。 互联网上越来越多的网页采用UTF-8编码,UTF-8用1到6个字节编码UNICODE字符,收录了超过10万个字符,BMP部分也有六万多个字符 而在进行编码转换时&…

关于 Number() parsint() abs() 的区别

1. parseInt(‘’) parseInt() 函数可解析一个字符串,并返回一个整数。 如果第一个字符不是数字或者负号,parseInt() 就会返回NaN 2.Number() 函数把对象的值转换为数字 3. Math.abs(x) 取得正数和负数的绝对值 转载于:https://www.cnblogs.com/…

python怎么安装pymysql_Python 安装pyMySQL过程记录

如果你的系统不支持 pip 命令,可以使用以下方式安装:1、使用 git 命令下载安装包安装(你也可以手动下载):$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install2、如果需要制定版本号,可以使用…

C++中的单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必…

Spring Boot 学习笔记(三)Spring boot 中的SSM

Spring boot 下的 Spring mvc Controller:即为Spring mvc的注解,处理http请求; RestController:Spring4后新增注解,是Controller与ResponseBody的组合注解,用于返回字符串或json数据; package c…

c mysql日期时间格式_mysql日期和时间类型

TIME 类型TIME 类型用于只需要时间信息的值,在存储时需要 3 个字节。格式为 HH:MM:SS。HH 表示小时,MM 表示分钟,SS 表示秒。TIME 类型的取值范围为 -838:59:59~838:59:59&#xff0…

MySQL问题汇总

1.#include <mysql.h>编译出错 在阅读TrinityCore时&#xff0c;发现了解决方法和解释&#xff1a; #ifdef _WIN32 // hack for broken mysql.h not including the correct winsock header for SOCKET definition, fixed in 5.7 #include <winsock2.h> #endif #inc…

c++中union的使用,看高手们如何解释的

union主要是共享内存&#xff0c;分配内存以其最大的结构或对象为大小&#xff0c;即sizeof最大的。在C/C程序的编写中&#xff0c;当多个基本数据类型或复合数据结构要占用同一片内存时&#xff0c;我们要使用联合体&#xff1b;当多种类型&#xff0c;多个对象&#xff0c;多…

ibm aix_IBM AIX:Java进程大小监视

ibm aix本文将为您提供有关如何计算在IBM AIX 5.3 OS上运行的Java VM进程的Java进程大小内存占用量的快速参考指南。 这是我关于该主题的原始文章的补充文章&#xff1a; 如何在AIX上监视Java本机内存 。 我强烈建议所有参与生产支持或AIX上部署Java应用程序开发的人员阅读此书…

路由的使用

1 路由的基本使用: url是个函数,有四个参数,第一个参数要传正则表达式,第二参数传函数内存地址,第三个参数传默认参数,第四个是路由的别名 url(r^article/aa.html$, views.test), -路由从上往下匹配,一旦匹配成功,后面就不继续匹配了 2 路由的无名分组 url(r^test2/(\d)/(\w)$,…

Ps2022版DR5插件扩展窗口不展示及未正确签署等问题修复

前言 最近在安装DR5的时候遇到了一些报错问题&#xff0c;翻看了几篇文章找了一些实质性的方案&#xff0c;亲测有效&#xff0c;有同样问题的小伙伴自己对号入座哈。 窗口扩展不显示问题 问题 很多人第一次安装DR5时会发现这个【窗口-扩展】是灰色的&#xff0c;且没有DR5…

centos 编译mysql5.6_centos下编译安装MySQL5.6

&#xff0c;虚拟机centos6.5mini网络适配器“桥接模式”继续上一次的Apache编译后&#xff0c;编译安装MySQL5.6MySQL5.6和以前的版本不同之处在于用cmake就行编译&#xff0c;先安装cmake#yum install cmake -y1、开始下载编译MySQL5.6&#xff0c;推荐镜像网站http://mirror…

Spring Boot和多模块项目–添加模块特定的属性文件

你好&#xff01; 在本文中&#xff0c;我将向您展示几种如何在Spring Boot项目中添加模块特定的属性文件的方法。 它将介绍使属性文件可识别配置文件的手动方法以及可识别配置文件的半自动方法。 我的Github帐户上发布了一个示例项目&#xff08; https://github.com/coders-…

修改hostname有几种方式?

1&#xff1a; hostname DB-Server --运行后立即生效&#xff08;新会话生效&#xff09;&#xff0c;但是在系统重启后会丢失所做的修改 2&#xff1a; echo DB-Server > /proc/sys/kernel/hostname --运行后立即生效&#xff08…

Java高阶语法---final

背景&#xff1a;听说final Java高阶语法是挺进BAT必经之路。 final: final关键字顾名思义就是最终不可改变的。 1、含义&#xff1a;final可以声明成员变量、方法、类和本地变量&#xff1b;一旦将引用声明为final&#xff0c;此引用将不再被改变&#xff0c;编译器会检查代码…

mysql 以 db 结尾_MySQL的高级部分

1. MySQL的事务(1)存储引擎的介绍介绍&#xff1a;当客户端发送一条SQL语句给服务器时&#xff0c;服务器端通过缓存、语法检查、校验通过之后&#xff0c;然后会通过调用底层的一些软件组织&#xff0c;去从数据库中查询数据&#xff0c;然后将查询到的结果集返回给客户端&…