一种RocketMQ消息队列实例管理系统及处理方法技术方案

技术编号:30435446 阅读:14 留言:0更新日期:2021-10-24 17:35
本发明专利技术公开了一种RocketMQ消息队列实例管理系统及处理方法,涉及消息队列管理技术。针对现有技术中一个实例只能对应一个管理系统的问题提出本方案,主要将实例信息的Name Server地址、执行机器IP和所需参数封装成脚本执行所需要的参数填充到脚本执行请求中;将脚本发送到对应的执行机器上;然后遍历实例下每一组Name Server地址和执行机器IP以执行一次脚本调用任务。管理系统包括实例创建模块、脚本执行模块和脚本调用模块,联合执行所述RocketMQ消息队列实例处理方法。优点在于,将多个RocketMQ消息队列实例进行统一管理,降低了消息队列实例维护成本,同时也具备单机部署的现有RocketMQ消息队列控制台应用的核心功能。能。能。

【技术实现步骤摘要】
一种RocketMQ消息队列实例管理系统及处理方法


[0001]本专利技术涉及消息队列的管理技术,尤其涉及一种RocketMQ消息队列实例管理系统及处理方法。

技术介绍

[0002]消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。
[0003]RocketMQ是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
[0004]RocketMQ的核心组件为Name Server和Broker,Broker为实际存储消息的地方,Name Server则充当路由器的作用,向客户端提供Broker上Topic的路由信息,使客户端能够根据路由正确地发送消息和消费消息。
[0005]mqadmin命令为RocketMQ自带的运维管理工具,其原理为通过Name Server获取到Broker地址,从而和Broker通信获取数据。
[0006]目前已经存在的RocketMQ控制台应用需要在每个RocketMQ消息队列实例上单独部署,只能同时查看和操作一个消息队列实例,不便于多个消息队列实例的管理。如果为了实现多个消息队列实例的管理,同时在多个实例上部署多个管理系统则增加了维护成本。

技术实现思路

[0007]本专利技术目的在于提供一种RocketMQ消息队列实例管理系统及处理方法,利用一个管理系统实现多个消息队列实例的管理。
[0008]本专利技术所述RocketMQ消息队列实例处理方法包括以下步骤:
[0009]S1、导入脚本,设置脚本的执行参数,将脚本信息保存至数据库;
[0010]S2、在触发脚本调用时,在数据库中查询脚本信息并填充至脚本请求中;根据需要执行脚本的实例id向数据库查询实例信息,将实例信息的Name Server地址、执行机器IP和所需参数封装成脚本执行所需要的参数填充到脚本执行请求中;
[0011]S3、将脚本请求发送至脚本执行模块等待处理;
[0012]S4、脚本执行模块收到脚本请求后进行解析,根据脚本id从数据库中查询脚本信息,对比脚本请求中的名称及参数进行校验;
[0013]S5、根据解析出的执行机器IP向数据库查询;
[0014]S6、根据脚本名称及执行机器IP,将脚本发送到对应的执行机器上;
[0015]S7、获取脚本执行结果并进行解析,如需要更新数据库,则将解析的结果保存到数据库中;返回步骤S2,遍历实例下每一组Name Server地址和执行机器IP;
[0016]S8.脚本调用模块结束一次脚本调用任务。
[0017]步骤S1具体为通过HTTP API导入脚本,导入的脚本是shell脚本。
[0018]脚本信息包含脚本唯一标识脚本id。
[0019]步骤S2中触发脚本调用可以是用户主动或者由定时任务触发。
[0020]步骤S4中从数据库中查询脚本信息包括:脚本名称、脚本存储路径以及脚本参数。
[0021]步骤S4对比脚本请求中的名称及参数进行校验时,若请求的脚本参数名称不对,则返回脚本参数不存在错误信息和HTTP错误响应码,然后执行步骤S8;若请求的脚本参数缺失,则返回脚本参数不能为空错误信息和HTTP错误响应码,然后执行步骤S8。
[0022]步骤S5向数据库查询后若执行机器的IP地址不存在,则返回执行机器IP不存在错误信息和HTTP错误响应码。
[0023]步骤S6具体为:脚本执行模块根据脚本存储路径判断脚本文件是否存在,若不存在,则返回脚本文件不存在错误信息和HTTP错误响应码,执行步骤S8;否则根据执行机器IP查询机器登录用户名和密码,进行远程文件传输,将脚本文件发送至执行机器中特定的目录下,最后在执行机器上执行脚本,执行参数为步骤S4中解析的脚本参数;执行机器IP使用实例下的Name Server地址,若执行超时,则中断执行,返回执行超时错误信息和HTTP错误响应码,否则返回执行结果。
[0024]在脚本文件发送至执行机器中特定的目录下时,若远程目录下存在同名文件则进行覆盖。
[0025]本专利技术所述RocketMQ消息队列实例管理系统,包括:
[0026]实例创建模块,用于创建消息队列新实例和接入已有消息队列实例,创建消息队列新实例时获取用户填写的实例创建表单,向脚本执行模块发出实例创建请求;
[0027]脚本执行模块,用于接收实例创建模块和脚本调用模块的请求,并根据不同的请求执行对应功能的脚本;
[0028]脚本调用模块,用于向脚本执行模块发起脚本执行请求,获取并解析脚本执行模块返回的结果;更新、查看和搜索当前消息队列实例上存在的Topic,根据用户需要创建和删除Topic,根据需求查看每个Topic的消费详情;更新和查看当前消息队列实例上存在的消费组,根据用户需要创建新的消费组,根据需求查看每个消费组的消费详情;查询已经发送到消息队列实例上的消息;用于查看所有已创建或者接入的消息队列实例信息,根据需求查看指定消息队列实例Name Server和Broker的部署信息,并实时监测Name Server和Broker的状态,实时更新Broker的流量数据;
[0029]所述的实例创建模块、脚本执行模块和脚本调用模块联合执行所述RocketMQ消息队列实例处理方法。
[0030]本专利技术所述RocketMQ消息队列实例管理系统及处理方法,其优点在于,脚本执行模块通过mqadmin命令实现的脚本向不同的RocketMQ消息队列实例执行功能相同的操作,从而将多个RocketMQ消息队列实例进行统一管理,降低了消息队列实例维护成本,同时也具备单机部署的现有RocketMQ消息队列控制台应用的核心功能,在实例创建模块的作用下,还可以手动接入已经存在的实例进行管理。
附图说明
[0031]图1是本专利技术所述RocketMQ消息队列实例管理系统的结构示意图。
[0032]图2是本专利技术所述RocketMQ消息队列实例处理方法的流程示意图。
具体实施方式
[0033]如图1所示,本专利技术所述RocketMQ消息队列实例管理系统主要包括实例创建模块、脚本执行模块和脚本调用模块。
[0034]实例创建模块,用于创建消息队列新实例和接入已有消息队列实例,创建消息队列新实例时获取用户填写的实例创建表单,向脚本执行模块发出实例创建请求。
[0035]脚本执行模块,用于接收实例创建模块和脚本调用模块的请求,并根据不同的请求执行对应功能的脚本。
[0036]脚本调用模块,用于向脚本执行模块发起脚本执行请求,获取并解析脚本执行模块返回的结果。
[0037]所述的脚本调用模块还包括以下几个子模块:
[0038]Topic管理模块,用于本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RocketMQ消息队列实例处理方法,其特征在于,包括以下步骤:S1、导入脚本,设置脚本的执行参数,将脚本信息保存至数据库;S2、在触发脚本调用时,在数据库中查询脚本信息并填充至脚本请求中;根据需要执行脚本的实例id向数据库查询实例信息,将实例信息的Name Server地址、执行机器IP和所需参数封装成脚本执行所需要的参数填充到脚本执行请求中;S3、将脚本请求发送至脚本执行模块等待处理;S4、脚本执行模块收到脚本请求后进行解析,根据脚本id从数据库中查询脚本信息,对比脚本请求中的名称及参数进行校验;S5、根据解析出的执行机器IP向数据库查询;S6、根据脚本名称及执行机器IP,将脚本发送到对应的执行机器上;S7、获取脚本执行结果并进行解析,如需要更新数据库,则将解析的结果保存到数据库中;返回步骤S2,遍历实例下每一组Name Server地址和执行机器IP;S8.脚本调用模块结束一次脚本调用任务。2.根据权利要求1所述RocketMQ消息队列实例处理方法,其特征在于,步骤S1具体为通过HTTP API导入脚本,导入的脚本是shell脚本。3.根据权利要求2所述RocketMQ消息队列实例处理方法,其特征在于,脚本信息包含脚本唯一标识脚本id。4.根据权利要求1所述RocketMQ消息队列实例处理方法,其特征在于,步骤S2中触发脚本调用可以是用户主动或者由定时任务触发。5.根据权利要求1所述RocketMQ消息队列实例处理方法,其特征在于,步骤S4中从数据库中查询脚本信息包括:脚本名称、脚本存储路径以及脚本参数。6.根据权利要求5所述RocketMQ消息队列实例处理方法,其特征在于,步骤S4对比脚本请求中的名称及参数进行校验时,若请求的脚本参数名称不对,则返回脚本参数不存在错误信息和HTTP错误响应码,然后执行步骤S8;若请求的脚本参数缺失,则返回脚本参数不能为空错误信息和HTTP错误响应码,然后执行步骤S8。7.根据权利要求1所述RocketMQ消息队列实例处理方法,其特征在于,步骤S5向数据库查询后若...

【专利技术属性】
技术研发人员:李夏明龙茂靖
申请(专利权)人:中国—东盟信息港股份有限公司
类型:发明
国别省市:

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

1