首页 > 其他分享 >RabbitMq shovel 将一个实例的消息转发到另一个实例的队列

RabbitMq shovel 将一个实例的消息转发到另一个实例的队列

时间:2024-07-05 09:42:11浏览次数:19  
标签:shovel 队列 RabbitMq 实例 消息 转发 交换机

RabbitMq shovel 将一个实例的消息转发到另一个实例的队列

一、shovel是什么?

其实,shovel和上一篇博客中的federation的功能是类似的,都是为了MQ间的消息同步。不同的是,federation需要每个MQ上都配置,它只是个拉取消息的功能,而shovel只需要在一个MQ上配置即可,它是个双向的动作,既能拉取消息,也能推送消息,所以只需要知道一台服务器ip就能实现双向通信,这在某些特定的场景下是特别适合的,比如有一台服务器的ip是不确定的。

一般情况下都是一个MQ的队列和另一个MQ的交换机进行通信,当然这也不是必须的,只是普遍这么使用。通过配置证明,队列与队列、队列与交换机、交换机与交换机都是可以实现通信的,只是需要注意的一个原则是,队列是不保存消息的,交换机是本地保存消息的。比如队列收到了消息,然后直接就转发到配置的下游,本队列中是不保存消息,而交换机除了转发走,还要本地保存,可以本地队列消费。

二、优势

1、松耦合。shovel可以移动位于不同管理域中的Broker(或者集群)上的消息,这些Broker(或者集群)可以包含不同的用户和虚拟主机,也可以使用不同的RabbitMQ和Erlang版本;

2、支持广域网。shovel插件同样基于AMQP协议在Broker之间进行通信,被设计成可以容忍时断时续的连通情况,并且能够保证消息的可靠性;

3、高度定制。当shovel成功连接后,可以对其进行配置以执行相关的AMQP命令。

三. 解决问题:将一个rabbitmq的消息,通过插件shove将信息转发到另一个rabbitmq,实现跨实例建消息转发

四.使用方法:
1.华为 云平台 --插件管理--开启 rabbitmq_shovel 插件
2.打开第1个rabbtimq web管理界面: http://IP:15672/#/dynamic-shovels admin--shovel -management --add shovel
3.add shovel格式:
source:
Virtual hos:/
Name: shovel-test
source url://ampq://whaleUser:admin_username@pwd@ip:5672/
queue: queue name

destination:
source url://ampq://whaleUser:admin_username@pwd@ip:5672/
queue: queue name

4.第2个rabbtima 的队列 接收转发的消息

标签:shovel,队列,RabbitMq,实例,消息,转发,交换机
From: https://www.cnblogs.com/chenshaojun2008/p/18285150

相关文章

  • RabbitMQ高级
    在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订单状态却显示未支付,数据出现了不一致。此时前端发送请求查询支付状态时,肯定是查......
  • RabbitMQ基础
    微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用过程中处于阻塞状态,因此我们成这种调用方式为同步调用,也可以叫同......
  • Rabbitmq的使用
    rabbitmq的使用1.使用场景及它的特点介绍2.mq的5种常用消息模型2.1队列模型—-1对12.2队列模型—1(生产者)对多(消费者)特点: 1.当有多个消费者时,无论消费者处理的性能是否相同,生产者的消费会平均分配给每一个消费者 2.每个消费者处理的消息是否存在重复?不会重复 ......
  • SAAS下一个mysql实例多个租户的库
    在多租户环境中,根据tenantCode字段动态切换数据库是常见的需求。这里将展示如何在SpringBoot和MyBatis项目中实现这一功能,具体步骤包括配置数据源、定义数据源路由逻辑以及在业务代码中使用。1.配置数据源首先,你需要为你的应用配置一个主数据源,这个数据源将被用于连接到包含所......
  • 第四章 对象的实例化内存布局与访问定位
    对象的实例化内存布局与访问定位对象的实例化 对象创建的方式(1)new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法(2)Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器,并且权限必须为public(3)Cons......
  • springboot项目国产化适配,jar改war包碰到的坑-tomcat版本要适配(非法访问:此Web应用程序
    项目原来是jar包运行,国产化适配要改成war包。可以参考https://blog.csdn.net/NAMELZX/article/details/138123405或者其他jar 改成 war 的文章。改成war后,在本地tomcat8上运行,一直报org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading非法......
  • labelme转yolo格式txt 目标检测和实例分割的脚本
    labelme标注后的数据转yolo目标检测格式txt的脚本点击查看代码#https://blog.csdn.net/m0_63172128/article/details/135942221importbase64importrandomimportshutilfromtqdmimporttqdmimportmathimportjsonimportosimportnumpyasnpimportPIL.Imageim......
  • EXCEL中20个数据处理类函数公式应用实例
    在Excel中,数据处理类函数是进行数据分析和报告制作的重要工具。以下列举了另外20个数据处理类函数及其应用实例,这些函数涵盖了一系列高级的数据处理需求,包括统计分析、财务计算、工程计算以及更复杂的文本和日期时间操作。数据统计与分析STDEV.S函数:用于计算样本标准差。例......
  • 24位PCM采样数据和16位相互转换算法实例解析
    一概念1.24bit音频:24bit指使用3个字节记录振幅值,意味可以记录16,777,216种声音振幅的变化,动态范围可达144dB(人耳听觉的动态范围是120dB,超过120dB人耳会痛,所以120dB又称痛阀)。下面是三种常见的音频采样比对表: 2.24位一般是采样深度的概念,还有一......
  • 开关电源三种基本拓扑的总结及其应用实例
    一、开关电源拓扑基础传统的开关电源拓扑可分为三种:Buck(降压型)、Boost(升压型)、Buck-Boost(升降压型)。对这三种拓扑归纳如下。1.1Buck-BoostBuck-Boost根据地参考点的位置可以进一步细分为正对负型和负对正型。升降压型拓扑的端口特性为:输入与输出反相;可升压也可降压。电......