一种基于RabbitMQ的消息队列集中配置管理系统及方法技术方案

技术编号:38052963 阅读:12 留言:0更新日期:2023-06-30 11:18
本发明专利技术公开了一种基于RabbitMQ的消息队列集中配置管理系统及方法,系统包括:消息队列配置管理模块、消息队列主机本体端、消息队列客户端、协调服务模块和实际数据传输模块;方法包括以下步骤:Client和Agent向Zookeeper注册,并选出master;Client和Agent向ConfigServer取得发行订阅关系;Client和Agent依据取得的订阅关系,通过RabbitMQ进行数据发送,本发明专利技术一种基于RabbitMQ的消息队列集中配置管理系统及方法,采用SpringBoot调用RabbitMQ接口,通过Zookeeper进行分布式应用调度,在保证常规信息交换平台的基本功能,又扩展实现了集中配置管理、大文件传输、接收端并发接收、消息数据全流程追踪等功能,满足了系统整合的各种需求,提升了整合效率,降低整合成本。合成本。合成本。

【技术实现步骤摘要】
一种基于RabbitMQ的消息队列集中配置管理系统及方法


[0001]本专利技术涉及信息系统整合领域,具体为一种基于RabbitMQ的消息队列集中配置管理系统及方法。

技术介绍

[0002]随着信息化的蓬勃发展,数据与信息交换需求不断扩张,如果不对系统间的接口方式进行统一规划,任由各信息系统使用自己原生开发的消息传递工具进行系统对接,会导致未来系统的可维护性极差,故障诊断难度加大,且总体性能大大降低。
[0003]当前市场上主流的数据交换产品包括RabbitMQ、ActiveMQ、RocketMQ、ZeroMQ等,但是这些解决方案存在如下弊端:
[0004]1、数据交换产品作为系统间数据交换的工具,通常是面向IT技术人员,对业务用户的操作支持不是很友好;
[0005]2、数据交换产品主要是由各被集成系统向数据交换平台发起连接,配置信息散落在各个业务系统,缺少集中配置管理,同时也缺少对被集成系统的运行状态监控;
[0006]3、目前这些数据交换产品不支持大文件传输,或仅支持小文件以字符流的方式进行传输,传输效率低;
[0007]4、消息的传输过程在被整合系统和数据交换系统之间天然的割裂开,缺少全流程的穿透式的数据追踪。
[0008]5、目前的数据交换产品是全部强迫必须按数据的发送顺序去消化,按顺序消化的代价是无法添加机器并行处理,事实上并不是所有数据都需要有顺序性(如主数据、会计凭证)等问题。

技术实现思路

[0009]本专利技术的目的在于提供一种基于RabbitMQ的消息队列集中配置管理系统及方法,以解决上述
技术介绍
中提出的问题。
[0010]为实现上述目的,本专利技术提供如下技术方案:一种基于RabbitMQ的消息队列集中配置管理系统,系统包括:消息队列配置管理模块、消息队列主机本体端、消息队列客户端、协调服务模块和实际数据传输模块;
[0011]所述消息队列配置管理模块,即ConfigServer,提供用户设定所有相关配置的服务,负责提供Client、Agent发行订阅关系,负责接收数据追踪数据,是集中配置管理方法实现的核心组件;
[0012]所述消息队列主机本体端,即Agent,与Host发送数据的Client,对数据传输方式进行二次封装,更易于系统调用,可将电文数据格式与Map类型自动转换;
[0013]所述消息队列客户端,即Client,负责与异质系统整合发送数据的客户端,主要提供数据库与文件两大类数据交换方式;
[0014]所述协调服务模块,即Zookeeper,协调服务,可供服务达成HA效果,从多结点的
Client中选出主/备,从多结点的Agent中选出主/备,实现ConfigServer中查看Client运行状态。
[0015]所述实际数据传输模块,即RabbitMQ,负责实际数据传输,实现持久化,HA数据备份增加可靠度。
[0016]一种基于RabbitMQ的消息队列集中配置管理方法,包括以下步骤:
[0017]步骤1:Client和Agent向Zookeeper注册,并选出master;
[0018]步骤2:Client和Agent向ConfigServer取得发行订阅关系;
[0019]步骤3:Client和Agent依据取得的订阅关系,通过RabbitMQ进行数据发送。
[0020]优选的,所述ConfigServer主要负责用户配置发行/订阅端时同步到RabbitMQ的队列当中,并且每当有异动时通知Client或Agent去更新自己的设定,提供了信息跳过的功能及数据追踪的纪录,所述ConfigServer的运行过程包括:
[0021]①
:Client或Agent启动时会去zk的
[0022]/mq/client/OVERALL/{nodeId_instance_time}
[0023]注册一个节点,该节点就是让ConfigServer可以查询有多少Client存活以及该Client的master是谁,而Agent上采用单一接收模式也可以透过zk查询出目前是哪个instance(runtime)负责处理接收;
[0024]②
:ConfigServer会将所有发行订阅关系记载在自身的DB中,以及会记录数据追踪的日志;
[0025]③
:每当用户在ConfigServer上有新删修队列,或是绑定不同的发行订阅关系时都会透过API去更新RabbitMQ上真实的队列状态;
[0026]④
:每当有更新队列状态时,要告知相关的Client或Agent来更新Config,这边也是透过RabbitMQ发送更新信息,当Client接收到之后再主动来到ConfigServer更新自身状态;
[0027]⑤
:Client端会到ConfigServer更新自身状态,主要只有启动时以及接收到更新信号时才会来做更新;
[0028]⑥
:Client的流程,当确认自身的发行订阅关系后,Client则可以开始对RabbitMQ发送或者接收信息;
[0029]⑦
:Client或Agent启动时会去zk的
[0030]/mq/client/OVERALL/{nodeId_instance_time}
[0031]注册一个节点,该节点就是让ConfigServer可以查询有多少Client存活以及该Client的master是谁,而Agent上采用单一接收模式也可以透过zk查询出目前是哪个instance(runtime)负责处理接收。
[0032]优选的,所述Agent是埋藏在AP中的运行服务,主要也是负责与ConfigServer和RabbitMQ的交握与沟通,所述ConfigServer的运行过程包括:
[0033]①
:Agent启动会去zk的
[0034]/mq/client/OVERALL/{nodeId_instance_time}注册一个节点,该节点就是让ConfigServer可以查询有多少Agent存活的地方,以及若Agent若采用单一接收模式,会到zk的/mq/client/{nodeId}/{queueId}抢占Master,抢到Master的可以运行,没抢到的则以slave状态存活;
[0035]②
:ConfigServer会时时在zk监控/mq/client/OVERALL/随时查看是否有新的client或者agent加入,并更新状态;
[0036]③
:Agent至ConfigServer询问自己(nodeId)需要发送的发行端(Pub)及订阅端(Sub)为何;
[0037]④
:针对自己所需要处理的订阅端,会从设定中找出要执行的class,每当收到信息时就会启动该class并将data给进该class中,发行端则是等待撰写程序有调用到put时建立,并发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于RabbitMQ的消息队列集中配置管理系统,其特征在于,系统包括:消息队列配置管理模块、消息队列主机本体端、消息队列客户端、协调服务模块和实际数据传输模块;所述消息队列配置管理模块,即ConfigServer,提供用户设定所有相关配置的服务,负责提供Client、Agent发行订阅关系,负责接收数据追踪数据,是集中配置管理方法实现的核心组件;所述消息队列主机本体端,即Agent,与Host发送数据的Client,对数据传输方式进行二次封装,更易于系统调用,可将电文数据格式与Map类型自动转换;所述消息队列客户端,即Client,负责与异质系统整合发送数据的客户端,主要提供数据库与文件两大类数据交换方式;所述协调服务模块,即Zookeeper,协调服务,可供服务达成HA效果,从多结点的Client中选出主/备,从多结点的Agent中选出主/备,实现ConfigServer中查看Client运行状态。所述实际数据传输模块,即RabbitMQ,负责实际数据传输,实现持久化,HA数据备份增加可靠度。2.根据权利要求1所述的一种基于RabbitMQ的消息队列集中配置管理方法,其特征在于,包括以下步骤:步骤1:Client和Agent向Zookeeper注册,并选出master;步骤2:Client和Agent向ConfigServer取得发行订阅关系;步骤3:Client和Agent依据取得的订阅关系,通过RabbitMQ进行数据发送。3.根据权利要求1所述的一种基于RabbitMQ的消息队列集中配置管理系统,其特征在于:所述ConfigServer主要负责用户配置发行/订阅端时同步到RabbitMQ的队列当中,并且每当有异动时通知Client或Agent去更新自己的设定,提供了信息跳过的功能及数据追踪的纪录,所述ConfigServer的运行过程包括:

:Client或Agent启动时会去zk的/mq/client/OVERALL/{nodeId_instance_time}注册一个节点,该节点就是让ConfigServer可以查询有多少Client存活以及该Client的master是谁,而Agent上采用单一接收模式也可以透过zk查询出目前是哪个instance(runtime)负责处理接收;

:ConfigServer会将所有发行订阅关系记载在自身的DB中,以及会记录数据追踪的日志;

:每当用户在ConfigServer上有新删修队列,或是绑定不同的发行订阅关系时都会透过API去更新RabbitMQ上真实的队列状态;

:每当有更新队列状态时,要告知相关的Client或Agent来更新Config,这边也是透过RabbitMQ发送更新信息,当Client接收到之后再主动来到ConfigServer更新自身状态;

:Client端会到ConfigServer更新自身状态,主要只有启动时以及接收到更新信号时才会来做更新;

:Client的流程,当确认自身的发行订阅关系后,Client则可以开始对RabbitMQ发送或者接收信息;

:Client或Agent启动时会去zk的/mq/client/OVERALL/{nodeId_instance_time}
注册一个节点,该节点就是让ConfigServer可以查询有多少Client存活以及该Client的master是谁,而Agent上采用单一接收模式也可以透过zk查询出目前是哪个instance(runtime)负责处理接收。4.根据权利要求1所述的一种基于RabbitMQ的消息队列集中配置管理系统,其特征在于:所述Agent是埋藏在AP中的运行服务,主要也是负责与ConfigServer和RabbitMQ的交握与沟通,所述ConfigServer的运行过程包括:

:Agent启动会去zk的/mq/client/OVERALL/{nodeId_instance_time}注册一个节点,该节点就是让ConfigServer可以...

【专利技术属性】
技术研发人员:张帅高洋田磊黄习瑞
申请(专利权)人:本溪钢铁集团信息自动化有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1