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

什么是JMS桥?

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

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

横向桥接方案

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


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

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

配置源代理

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

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

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


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

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


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

配置目标代理

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

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

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

您必须创建一个与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

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

  1. 如何在两台远程服务器之间传输文件

    当两台服务器之间需要传输文件时,使用FTP软件(FileZilla)就很难发挥作用了. 使用scp则能解决此问题,一般LInux自带scp scp 命令介绍 scp 本地用户名@IP地址:文件名1 远 ...

  2. 两个ftp服务器之间的文件传输,FTP服务器之间传输文件

    FTP服务器之间传输文件 内容精选 换一换 云服务器创建后区域固定,不能将云服务器转移到另一个区域,也不能将云服务器转移到另一个帐号.您可以通过镜像迁移方式实现云服务器的跨帐号跨区域迁移.服务器迁移的 ...

  3. 两个Liunx服务器之间的文件夹迁移

    一.说明 因为当时项目源码文件部署在A服务器中,现A服务器暂时使用,需把项目源码文件切换到B服务器,所以需要把A服务器的项目源码文件都复制过去,因为有点大,所以不可能说从A服务器导出来再导过去B服务器 ...

  4. 两台centOS服务器之间挂载共享存储

    服务端(192.168.1.122) 1.查看系统是否已安装NFS [root@rapdog ~]# rpm -qa | grep nfs [root@rapdog ~]# rpm -qa | gre ...

  5. linux系统之间无密传输,scp采用无密码在两台linux服务器之间传输数据(示例代码)...

    一.root用户: 1. 在主机A上执行如下命令来生成配对密钥: ssh-keygen -t rsa 按照提示操作,注意,不要输入passphrase.提示信息如下 Generating public ...

  6. Linux scp命令 | 还在为两个 ip 服务器之间如何传输项目 发愁吗

  7. 多个跨云服务器之间满带宽测速的一种实现方案

    量变引起质变. 项目需求 由于我们现在开发的云平台项目是一个跨云调度的重型计算平台,所以会用到不同的云服务厂商的计算实例服务器,比如阿里云的ECS.亚马逊的EC2或者谷歌云的compute engin ...

  8. 【scp】【数据传输】服务器之间拷贝数据、数据同步

    方法一:scp(secure copy)安全拷贝 (1)scp定义: scp可以实现服务器与服务器之间的数据拷贝.(   from serverA  to serverB ) 1.scp方法 最简单的 ...

  9. Linux服务器之间设置共享目录

    前言 有时候我们需要在两台linux服务器之间共享资源,例如在服务器A上面部署了一个大文件上传程序,但是需要将文件上传到服务器B的某个目录下面,因为上传大文件,需要先将文件所有分块单独上传到服务器B, ...

最新文章

  1. str函数和repr函数的区别
  2. 前端面试http和https的区别
  3. scala成长之路(2)对象和类
  4. javaScript tips —— z-index 对事件机制的影响
  5. Bypass WAF Cookbook
  6. 肿瘤化疗无效是对预先存在的突变的选择还是诱发新突变,Cell给你答案
  7. 华为鸿蒙OS 2.0 发布,18点18分开放源代码
  8. 开源jshop小程序商城
  9. 招聘笔记:机器学习基础知识(19道题,有参考答案)
  10. 颠覆智能手机的下一代设备已出现?
  11. tomcat通过虚拟路径访问外部静态资源
  12. win10计算机ser,win10 ch341ser.inf安装失败如何处理_win10无法安装ch341ser.inf修复方法...
  13. OpenGL 渲染 YUYV(YUV422)
  14. UE4安装教程,虚幻引擎安装教程,UE4的安装
  15. 弹出框--用css实现div在页面居中(水平垂直居中效果)
  16. 【设计模式】职责链模式:如果第三方短信平台挂了怎么办?
  17. PowerQuery
  18. 如何将一个陈旧的游戏翻新?以中国象棋为例展开的头脑风暴
  19. DataRow.Field Expression [DataTable动态linq]
  20. docker、kubernetes安装部署fastdfs文件集群系统

热门文章

  1. mybatis入门(七)之日志
  2. Nginx中如何配置中文域名?
  3. “温室里的花朵”也要直面困难
  4. Redis非阻塞I/O多路复用机制
  5. 程序员成长之路 java面试指导(作者说的极好要看) 静下心看
  6. 服务器复制不了文档,服务器复制粘贴不了
  7. Linux ss 热点,在Linux系统下的ss命令(socket statistics)各种使用示例
  8. java客户端作为kafka消费者测试
  9. 记录一下SpringCloud-Gateway使用lb动态路由遇到的坑
  10. camel apache_如何使用Apache Camel,Quarkus和GraalVM快速运行100个骆驼