CN112769924B - RocketMQ的分布式部署方法、装置、设备及介质 - Google Patents
RocketMQ的分布式部署方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112769924B CN112769924B CN202011633039.9A CN202011633039A CN112769924B CN 112769924 B CN112769924 B CN 112769924B CN 202011633039 A CN202011633039 A CN 202011633039A CN 112769924 B CN112769924 B CN 112769924B
- Authority
- CN
- China
- Prior art keywords
- node
- broker component
- broker
- deployed
- working
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及人工智能技术领域,揭示了一种RocketMQ的分布式部署方法、装置、设备及介质,其中方法包括:待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应;采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点;待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点;根据所有寻址服务节点和待注册的Broker组件集合确定目标RocketMQ集群。在机房故障时避免消息丢失,实现了服务不中断。
Description
技术领域
本申请涉及到人工智能技术领域,特别是涉及到一种RocketMQ的分布式部署方法、装置、设备及介质。
背景技术
RocketMQ是一款分布式,队列模型的消息队列中间件。现有技术中部署RocketMQ采用单机房模式,在机房重大故障,比如,机房断电、机房部分线路故障、部分服务器故障,导致存在RocketMQ的消息全部丢失,应用无法继续提供服务,最终影响用户使用,导致业务中断,给客户造成较大损失。
发明内容
本申请的主要目的为提供一种RocketMQ的分布式部署方法、装置、设备及介质,旨在解决现有技术中单机房部署RocketMQ在机房重大故障,导致存在RocketMQ的消息全部丢失,应用无法继续提供服务,最终影响用户使用的技术问题。
为了实现上述发明目的,本申请提出一种RocketMQ的分布式部署方法,所述方法包括:
获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
进一步的,所述采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点的步骤,包括:
采用所述RocketMQ节点文件的寻址服务组件文件分别在每个所述待部署服务器组中部署一个所述寻址服务节点,其中,每个所述寻址服务节点包括一个寻址服务端,所述寻址服务端用于管理所述待注册的Broker组件集合的路由信息;
采用所述RocketMQ节点文件的工作节点文件分别在每个所述待部署服务器组中部署至少两个所述工作节点。
进一步的,所述根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点的步骤,包括:
从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件;
根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的其中一个所述工作节点的节点配置文件进行主节点属性名称、主节点属性ID、所述待配置的Broker组件的Broker标识、集群名称、寻址服务节点路由信息的设置,得到待启动的主节点;
根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的剩余的所述工作节点的节点配置文件进行备用节点属性名称、备用节点属性ID、所述待配置的Broker组件的Broker标识、所述集群名称、所述寻址服务节点路由信息的设置,得到待启动的备用节点集合;
对所述待启动的主节点依次执行节点服务停止命令和节点服务启动命令,得到所述待配置的Broker组件的所述主工作节点;
对所述待启动的备用节点集合中每个工作节点依次执行所述节点服务停止命令和所述节点服务启动命令,得到所述待配置的Broker组件的所有所述备用工作节点;
重复执行所述从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件的步骤,直至确定所述待注册的Broker组件集合中所有所述Broker组件的所述主工作节点和所有所述备用工作节点。
进一步的,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤,包括:
根据所述RocketMQ配置文件将所有所述寻址服务节点进行通信连接,得到关联后的寻址服务节点集合;
根据所述RocketMQ配置文件将每个所述Broker组件和所述关联后的寻址服务节点集合中的每个所述寻址服务节点进行通信连接,得到关联后的Broker组件集合;
从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件;
调用所述待注册的Broker组件向所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点发送注册请求,所述注册请求携带有待注册的Broker组件路由信息;
调用所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点根据所述待注册的Broker组件路由信息更新消息分组与Broker组件对应数据表;
重复所述从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件的步骤,直至将所述关联后的Broker组件集合中的所有所述Broker组件注册到所述消息分组与Broker组件对应数据表中;
根据所述关联后的寻址服务节点集合、所述关联后的Broker组件集合、所述消息分组与Broker组件对应数据表,得到所述目标RocketMQ集群。
进一步的,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
调用目标Broker组件按第一预设时间间隔向所述目标Broker组件对应的所述寻址服务节点发送待存储的心跳信息,所述待存储的心跳信息携带有所述目标Broker组件的消息分组配置信息,所述目标Broker组件是所述目标RocketMQ集群中的任一个所述Broker组件;
调用所述目标Broker组件对应的所述寻址服务节点根据所述待存储的心跳信息和所述目标Broker组件的所述消息分组配置信息更新心跳信息库;
调用所述目标RocketMQ集群的任一个所述寻址服务节点按第二预设时间间隔从所述心跳信息库中获取心跳时间最晚的心跳信息,得到待分析的心跳信息集合,获取当前时间,将所述当前时间分别减去所述待分析的心跳信息集合中的每个待分析的心跳信息的所述心跳时间,得到所述待分析的心跳信息集合中的所有所述待分析的心跳信息各自对应的心跳更新时长,当所述待分析的心跳信息对应的所述心跳更新时长大于预设心跳间隔时长时,根据所述待分析的心跳信息更新消息分组与Broker组件对应数据表。
进一步的,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
调用所述目标RocketMQ集群的任一所述寻址服务节点的寻址服务端获取消息生成端发送的消息发布请求,所述消息发布请求携带有消息分组信息,根据所述消息发布请求携带的所述消息分组信息确定所述Broker组件的路由信息,得到目标路由信息,将所述目标路由信息发送给所述消息生成端,所所述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件。
进一步的,所所述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件的步骤之后,包括:
调用所述目标路由信息对应的所述Broker组件将接收的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述主工作节点的消息队列;
调用所述目标路由信息对应的所述Broker组件的所述备用工作节点按预设同步时间间隔从所述目标路由信息对应的所述Broker组件的所述主工作节点获取所述待发布的消息,将获取的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述备用工作节点的消息队列中;
调用所述目标路由信息对应的所述Broker组件的所述主工作节点将所述待发布的消息发布给消息消费端。
本申请提出了一种RocketMQ的分布式部署装置,所述装置包括:
请求获取模块,用于获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
节点部署模块,用于获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
Broker组件配置模块,用于获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
Broker组件的工作节点配置模块,用于根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
集群配置模块,用于根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
本申请提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的RocketMQ的分布式部署方法、装置、设备及介质,通过获取RocketMQ集群部署请求,RocketMQ集群部署请求携带有待部署服务器组数据,待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应,获取RocketMQ节点文件,采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点,获取RocketMQ配置文件,根据RocketMQ配置文件和所有工作节点进行Broker组件设置,得到待注册的Broker组件集合,待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,根据RocketMQ配置文件将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点,根据RocketMQ配置文件将所有寻址服务节点和待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群,从而实现了在至少两个机房部署目标RocketMQ集群,而且目标RocketMQ集群的每个Broker组件的两个工作节点位于不同的待部署机房,也就是说,每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
附图说明
图1为本申请一实施例的RocketMQ的分布式部署方法的流程示意图;
图2为本申请一实施例的RocketMQ的分布式部署系统的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了解决现有技术中单机房部署RocketMQ在机房重大故障,导致存在RocketMQ的消息全部丢失,应用无法继续提供服务,最终影响用户使用的技术问题,本申请提出了一种RocketMQ的分布式部署方法,所述方法应用于人工智能技术领域,所述方法进一步应用于人工智能的分布式技术领域。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。所述RocketMQ的分布式部署方法通过基于至少两个机房设置RocketMQ集群,在每个机房设置一个寻址服务节点,将Broker组件的工作节点设置在不同机房,使每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
参照图1,本申请实施例中提供一种RocketMQ的分布式部署方法,所述方法包括:
S1:获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
S2:获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
S3:获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
S4:根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
S5:根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
本实施例通过获取RocketMQ集群部署请求,RocketMQ集群部署请求携带有待部署服务器组数据,待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应,获取RocketMQ节点文件,采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点,获取RocketMQ配置文件,根据RocketMQ配置文件和所有工作节点进行Broker组件设置,得到待注册的Broker组件集合,待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,根据RocketMQ配置文件将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点,根据RocketMQ配置文件将所有寻址服务节点和待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群,从而实现了在至少两个机房部署目标RocketMQ集群,而且目标RocketMQ集群的每个Broker组件的两个工作节点位于不同的待部署机房,也就是说,每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
对于S1,获取用户输入的RocketMQ集群部署请求。
RocketMQ集群部署请求,是指部署RocketMQ集群的请求。
待部署服务器组,是指需用于部署RocketMQ集群的服务器组。待部署服务器组中包括至少一台服务器。
所述待部署服务器组与待部署机房一一对应,也就是说,每个待部署机房中安装有一个所述待部署服务器组,一个所述待部署服务器组安装在同一个待部署机房中。
对于S2,获取用户输入的RocketMQ节点文件。
RocketMQ节点文件,是安装RocketMQ的节点的安装文件。RocketMQ节点文件包括:寻址服务组件文件、工作节点文件。
其中,采用所述RocketMQ节点文件在所述待部署服务器组数据中的每个所述待部署服务器组中都安装一个寻址服务节点和至少两个工作节点。
可以理解的是,同一所述待部署服务器组的一个寻址服务节点和至少两个工作节点可以位于同一服务器上,也可以位于多个服务器上,在此不做具体限定。
可选的,同一所述待部署服务器组的一个寻址服务节点和至少两个工作节点安装在不同服务器上。也就是说,所述待部署服务器组的服务器数量与寻址服务节点、所有工作节点的总数量相同。比如,一个寻址服务节点和两个工作节点,所述待部署服务器组的服务器数量为三台,在此举例不做具体限定。
对于S3,获取用户输入的RocketMQ配置文件。
RocketMQ配置文件,也就是进行RocketMQ集群配置的文件。
其中,根据所述RocketMQ配置文件的Broker组件与工作节点对应表将所有所述工作节点进行Broker组件设置,将得到的所有Broker组件作为所述待注册的Broker组件集合。其中,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房,也就是说,每个Broker组件的所有所述工作节点位于不同的所述待部署机房,从而使每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失。
Broker组件与工作节点对应表包括:第一工作节点的路由信息、第二工作节点的路由信息集合,每个第一工作节点的路由信息包括一个工作节点的路由信息,第二工作节点的路由信息集合包括至少一个工作节点的路由信息。
可以理解的是,每个工作节点只能被配置到一个Broker组件。
对于S4,根据所述RocketMQ配置文件的Broker组件与工作节点对应表将所述Broker组件中的两个所述工作节点分别配置为一个主工作节点和至少一个备用工作节点。也就是说,对于每个所述Broker组件,存在至少一个备用工作节点与主工作节点不在同一个待部署机房,从而使每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失。
可选的,所述Broker组件中的所有所述工作节点位于不同的待部署机房,也就是说,每个待部署机房的每个工作节点属于不同的所述Broker组件。
主工作节点,是实际工作的节点,提供消息的读写服务。
备用工作节点,是备份的节点,从位于同一Broker组件的主工作节点同步数据,并且当位于同一Broker组件的主工作节点出现异常时自动接管该主工作节点的工作。
对于S5,采用所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合的所有Broker组件进行集群配置,将配置得到的RocketMQ集群作为目标RocketMQ集群。
在一个实施例中,上述采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点的步骤,包括:
S21:采用所述RocketMQ节点文件的寻址服务组件文件分别在每个所述待部署服务器组中部署一个所述寻址服务节点,其中,每个所述寻址服务节点包括一个寻址服务端,所述寻址服务端用于管理所述待注册的Broker组件集合的路由信息;
S22:采用所述RocketMQ节点文件的工作节点文件分别在每个所述待部署服务器组中部署至少两个所述工作节点。
本实施例实现了在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点,从而实现了多机房的部署,在其中一个机房出现故障无法服务时,其他机房中的寻址服务节点和工作节点可以继续提供服务,从而实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
对于S21,采用所述RocketMQ节点文件的待部署寻址服务节点路由信息列表,将所述RocketMQ节点文件的寻址服务组件文件分别在待部署寻址服务节点路由信息列表对应的所有所述待部署服务器组的每个所述待部署服务器组中部署一个所述寻址服务节点。
待部署寻址服务节点路由信息列表包括:寻址服务节点的路由信息。
对于S22,采用所述RocketMQ节点文件的待部署工作节点路由信息列表,将采用所述RocketMQ节点文件的工作节点文件分别在待部署工作节点路由信息列表对应的所有所述待部署服务器组的每个所述待部署服务器组中部署至少两个所述工作节点。
待部署工作节点路由信息列表包括:工作节点的路由信息。
在一个实施例中,上述根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点的步骤,包括:
S41:从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件;
S42:根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的其中一个所述工作节点的节点配置文件进行主节点属性名称、主节点属性ID、所述待配置的Broker组件的Broker标识、集群名称、寻址服务节点路由信息的设置,得到待启动的主节点;
S43:根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的剩余的所述工作节点的节点配置文件进行备用节点属性名称、备用节点属性ID、所述待配置的Broker组件的Broker标识、所述集群名称、所述寻址服务节点路由信息的设置,得到待启动的备用节点集合;
S44:对所述待启动的主节点依次执行节点服务停止命令和节点服务启动命令,得到所述待配置的Broker组件的所述主工作节点;
S45:对所述待启动的备用节点集合中每个工作节点依次执行所述节点服务停止命令和所述节点服务启动命令,得到所述待配置的Broker组件的所有所述备用工作节点;
S46:重复执行所述从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件的步骤,直至确定所述待注册的Broker组件集合中所有所述Broker组件的所述主工作节点和所有所述备用工作节点。
本实施例实现了将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点,从而使每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失。
对于S41,从所述待注册的Broker组件集合中获取任一个所述Broker组件,将获取的Broker组件作为待配置的Broker组件。
对于S42,采用所述RocketMQ配置文件的Broker组件与工作节点对应表对所述待配置的Broker组件中的所有所述工作节点中的其中一个所述工作节点(也就是第一工作节点的路由信息对应的工作节点)的节点配置文件进行主节点属性名称、主节点属性ID、所述待配置的Broker组件的Broker标识、集群名称、寻址服务节点路由信息的设置,将设置后的工作节点作为待配置的Broker组件的待启动的主节点。
比如,将所述待配置的Broker组件中的所有所述工作节点中的其中一个所述工作节点的节点配置文件设置得到brokerRole=SYNC_MASTER,brokerId=0,brokerName=broker_1,brokerClusterName=ClusterName,主节点属性名称是SYNC_MASTER、主节点属性ID是0、所述待配置的Broker组件的Broker标识是broker_1、集群名称是ClusterName,在此举例不做具体限定。
对于S43,采用所述RocketMQ配置文件的Broker组件与工作节点对应表对所述待配置的Broker组件中的所有所述工作节点中剩余的工作节点(也就是第二工作节点的路由信息集合对应的所有工作节点)的节点配置文件进行备用节点属性名称、备用节点属性ID、所述待配置的Broker组件的Broker标识、所述集群名称、所述寻址服务节点路由信息的设置,将设置的每个工作节点作为待配置的Broker组件的一个备用工作节点。
比如,将工作节点的节点配置文件进行备用节点属性名称、备用节点属性ID、所述待配置的Broker组件的Broker标识、所述集群名称、所述寻址服务节点路由信息的设置得到brokerRole=SLAVE,brokerId=1,brokerName=broker_1以及brokerClusterName=ClusterName,备用节点属性名称是SLAVE、备用节点属性ID是1、所述待配置的Broker组件的Broker标识是broker_1、所述集群名称是ClusterName,在此举例不做具体限定。
对于S44,对所述待启动的主节点依次执行节点服务停止命令和节点服务启动命令,从而实现了对所述待启动的主节点的重启,将重启后的待启动的主节点作为所述待配置的Broker组件的所述主工作节点。
对于S45,分别对所述待启动的备用节点集合中每个工作节点依次执行所述节点服务停止命令和所述节点服务启动命令,从而实现对所述待启动的备用节点中所有工作节点进行重启,重启结束得到所述待配置的Broker组件的所有所述备用工作节点。
对于S46,重复执行步骤S41至步骤S46,直至确定所述待注册的Broker组件集合中所有所述Broker组件的所述主工作节点和所有所述备用工作节点。
在一个实施例中,上述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤,包括:
S51:根据所述RocketMQ配置文件将所有所述寻址服务节点进行通信连接,得到关联后的寻址服务节点集合;
S52:根据所述RocketMQ配置文件将每个所述Broker组件和所述关联后的寻址服务节点集合中的每个所述寻址服务节点进行通信连接,得到关联后的Broker组件集合;
S53:从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件;
S54:调用所述待注册的Broker组件向所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点发送注册请求,所述注册请求携带有待注册的Broker组件路由信息;
S55:调用所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点根据所述待注册的Broker组件路由信息更新消息分组与Broker组件对应数据表;
S56:重复所述从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件的步骤,直至将所述关联后的Broker组件集合中的所有所述Broker组件注册到所述消息分组与Broker组件对应数据表中;
S57:根据所述关联后的寻址服务节点集合、所述关联后的Broker组件集合、所述消息分组与Broker组件对应数据表,得到所述目标RocketMQ集群。
本实施例通过集群配置,从而实现了将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群化管理,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
对于S51,采用所述RocketMQ配置文件的待关联的寻址服务节点路由信息列表,将所有所述寻址服务节点之间进行通信连接,得到关联后的寻址服务节点集合。也就是说,关联后的寻址服务节点集合中的任意两个寻址服务节点可以直接进行通信连接。
待关联的寻址服务节点路由信息列表包括:寻址服务节点的路由信息。
对于S52,采用所述RocketMQ配置文件的待关联的Broker组件路由信息列表,将所述待注册的Broker组件集合在每个所述Broker组件的所有工作节点(也就是主工作节点和备用工作节点)与所述关联后的寻址服务节点集合中的每个所述寻址服务节点进行通信连接,得到关联后的Broker组件集合。也就是说,关联后的Broker组件集合中每个Broker组件的每个工作节点(也就是主工作节点和备用工作节点)可以和关联后的寻址服务节点集合中的每个所述寻址服务节点直接进行通信连接。
待关联的Broker组件路由信息列表包括:Broker组件的工作节点的路由信息。
对于S53,从所述关联后的Broker组件集合中随机获取一个所述Broker组件,将获取的Broker组件作为待注册的Broker组件。
对于S54,注册请求,也就是将所述待注册的Broker组件注册到关联后的寻址服务节点集合对应的寻址服务节点群的请求。
待注册的Broker组件路由信息,也就是所述待注册的Broker组件的工作节点的路由信息。
对于S55,更新消息分组与Broker组件对应数据表,是指在消息分组与Broker组件对应数据表在进行添加、覆盖操作。
消息分组与Broker组件对应数据表包括:Broker组件、消息分组,每个Broker组件对应一个消息分组。
消息分组可以根据业务需求、服务性能进行设置,在此不做具体限定。
对于S56,重复步骤S53至步骤S56,直至将所述关联后的Broker组件集合中的所有所述Broker组件注册到所述消息分组与Broker组件对应数据表中。
对于S57,将所述关联后的寻址服务节点集合、所述关联后的Broker组件集合、所述消息分组与Broker组件对应数据表作为所述目标RocketMQ集群。
在一个实施例中,上述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
S611:调用目标Broker组件按第一预设时间间隔向所述目标Broker组件对应的所述寻址服务节点发送待存储的心跳信息,所述待存储的心跳信息携带有所述目标Broker组件的消息分组配置信息,所述目标Broker组件是所述目标RocketMQ集群中的任一个所述Broker组件;
S612:调用所述目标Broker组件对应的所述寻址服务节点根据所述待存储的心跳信息和所述目标Broker组件的所述消息分组配置信息更新心跳信息库;
S613:调用所述目标RocketMQ集群的任一个所述寻址服务节点按第二预设时间间隔从所述心跳信息库中获取心跳时间最晚的心跳信息,得到待分析的心跳信息集合,获取当前时间,将所述当前时间分别减去所述待分析的心跳信息集合中的每个待分析的心跳信息的所述心跳时间,得到所述待分析的心跳信息集合中的所有所述待分析的心跳信息各自对应的心跳更新时长,当所述待分析的心跳信息对应的所述心跳更新时长大于预设心跳间隔时长时,根据所述待分析的心跳信息更新消息分组与Broker组件对应数据表。
本实施例实现了在部署目标RocketMQ集群之后,通过心跳信息对Broker组件的可用性进行管理,从而提高了目标RocketMQ集群的可用性。
对于S611,调用目标Broker组件的所有工作节点基于目标Broker组件与目标RocketMQ集群的寻址服务节点的通信连接,按第一预设时间间隔向所述目标Broker组件对应的所述寻址服务节点发送待存储的心跳信息,每个工作节点每次发送一个待存储的心跳信息。
待存储的心跳信息,是希望存储到目标RocketMQ集群的寻址服务节点的心跳信息。待存储的心跳信息包括但不限于:所述目标Broker组件的消息分组配置信息、心跳时间。心跳时间是指发送待存储的心跳信息的时间。
对于S613,调用所述目标RocketMQ集群的任一个所述寻址服务节点按第二预设时间间隔从所述心跳信息库中获取心跳时间最晚的心跳信息,也就是获取各个Broker组件的所有工作节点最后更新的心跳信息。
当所述待分析的心跳信息对应的所述心跳更新时长大于预设心跳间隔时长时,意味着所述待分析的心跳信息对应的Broker组件的工作节点不符合心跳要求,需要将不符合要求的工作节点从消息分组与Broker组件对应数据表中删除注册,也就是将不符合要求的所述待分析的心跳信息对应的Broker组件的工作节点从消息分组与Broker组件对应数据表中删除,从而完成了对不符合心跳要求的工作节点从目标RocketMQ集群移除。
可选的,第二预设时间间隔大于第一预设时间间隔,第二预设时间间隔小于预设心跳间隔时长,从而实现及时检查出有问题的Broker组件,提高目标RocketMQ集群的可用性。
在一个实施例中,上述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
调用所述目标RocketMQ集群的任一所述寻址服务节点的寻址服务端获取消息生成端发送的消息发布请求,所述消息发布请求携带有消息分组信息,根据所述消息发布请求携带的所述消息分组信息确定所述Broker组件的路由信息,得到目标路由信息,将所述目标路由信息发送给所述消息生成端,所述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件。
本实施例实现了通过目标RocketMQ集群接收消息生成端生成的消息,从而实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
消息发布请求,是指将消息生成端生成的消息进行发布的请求。
消息分组信息,是指对消息生成端发布的消息进行处理的Broker组件的路由信息。
目标路由信息,也就是所述Broker组件的路由信息。
在一个实施例中,上述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件的步骤之后,包括:
S621:调用所述目标路由信息对应的所述Broker组件将接收的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述主工作节点的消息队列;
S622:调用所述目标路由信息对应的所述Broker组件的所述备用工作节点按预设同步时间间隔从所述目标路由信息对应的所述Broker组件的所述主工作节点获取所述待发布的消息,将获取的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述备用工作节点的消息队列中;
S623:调用所述目标路由信息对应的所述Broker组件的所述主工作节点将所述待发布的消息发布给消息消费端。
本实施例实现了通过目标RocketMQ集群将待发布的消息发布给消息消费端,从而在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
对于S621,调用所述目标路由信息对应的所述Broker组件的所述主工作节点接收所述待发布的消息,将接收的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述主工作节点的消息队列中。
对于S622,调用所述目标路由信息对应的所述Broker组件的所述备用工作节点按预设同步时间间隔从所述目标路由信息对应的所述Broker组件的所述主工作节点的消息队列获取所述待发布的消息,从而实现了信息的自动同步,在机房故障时可以避免消息丢失。
对于S623,调用所述目标路由信息对应的所述Broker组件的所述主工作节点将自己的消息队列中的所述待发布的消息发布给消息消费端,从而实现了所述待发布的消息的消费。
参照图2,本申请提出了一种RocketMQ的分布式部署装置,所述装置包括:
请求获取模块100,用于获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
节点部署模块200,用于获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
Broker组件配置模块300,用于获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
Broker组件的工作节点配置模块400,用于根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
集群配置模块500,用于根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
本实施例通过获取RocketMQ集群部署请求,RocketMQ集群部署请求携带有待部署服务器组数据,待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应,获取RocketMQ节点文件,采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点,获取RocketMQ配置文件,根据RocketMQ配置文件和所有工作节点进行Broker组件设置,得到待注册的Broker组件集合,待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,根据RocketMQ配置文件将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点,根据RocketMQ配置文件将所有寻址服务节点和待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群,从而实现了在至少两个机房部署目标RocketMQ集群,而且目标RocketMQ集群的每个Broker组件的两个工作节点位于不同的待部署机房,也就是说,每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存RocketMQ的分布式部署方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种RocketMQ的分布式部署方法。所述RocketMQ的分布式部署方法,包括:获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
本实施例通过获取RocketMQ集群部署请求,RocketMQ集群部署请求携带有待部署服务器组数据,待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应,获取RocketMQ节点文件,采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点,获取RocketMQ配置文件,根据RocketMQ配置文件和所有工作节点进行Broker组件设置,得到待注册的Broker组件集合,待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,根据RocketMQ配置文件将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点,根据RocketMQ配置文件将所有寻址服务节点和待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群,从而实现了在至少两个机房部署目标RocketMQ集群,而且目标RocketMQ集群的每个Broker组件的两个工作节点位于不同的待部署机房,也就是说,每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种RocketMQ的分布式部署方法,包括步骤:获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
上述执行的RocketMQ的分布式部署方法,通过通过获取RocketMQ集群部署请求,RocketMQ集群部署请求携带有待部署服务器组数据,待部署服务器组数据包括至少两个待部署服务器组,待部署服务器组与待部署机房一一对应,获取RocketMQ节点文件,采用RocketMQ节点文件分别在待部署服务器组数据中的每个待部署服务器组中部署一个寻址服务节点和至少两个工作节点,获取RocketMQ配置文件,根据RocketMQ配置文件和所有工作节点进行Broker组件设置,得到待注册的Broker组件集合,待注册的Broker组件集合中每个Broker组件的至少两个工作节点位于至少两个待部署机房,根据RocketMQ配置文件将Broker组件中的所有工作节点分别配置为一个主工作节点和至少一个备用工作节点,根据RocketMQ配置文件将所有寻址服务节点和待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群,从而实现了在至少两个机房部署目标RocketMQ集群,而且目标RocketMQ集群的每个Broker组件的两个工作节点位于不同的待部署机房,也就是说,每个机房的工作节点中的消息在其他机房有备份,在机房故障时可以避免消息丢失,实现了服务不中断,能最大程度挽回损失,减少了对用户的影响。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种RocketMQ的分布式部署方法,其特征在于,所述方法包括:
获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
2.根据权利要求1所述的RocketMQ的分布式部署方法,其特征在于,所述采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点的步骤,包括:
采用所述RocketMQ节点文件的寻址服务组件文件分别在每个所述待部署服务器组中部署一个所述寻址服务节点,其中,每个所述寻址服务节点包括一个寻址服务端,所述寻址服务端用于管理所述待注册的Broker组件集合的路由信息;
采用所述RocketMQ节点文件的工作节点文件分别在每个所述待部署服务器组中部署至少两个所述工作节点。
3.根据权利要求1所述的RocketMQ的分布式部署方法,其特征在于,所述根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点的步骤,包括:
从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件;
根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的其中一个所述工作节点的节点配置文件进行主节点属性名称、主节点属性ID、所述待配置的Broker组件的Broker标识、集群名称、寻址服务节点路由信息的设置,得到待启动的主节点;
根据所述RocketMQ配置文件对所述待配置的Broker组件中的所有所述工作节点中的剩余的所述工作节点的节点配置文件进行备用节点属性名称、备用节点属性ID、所述待配置的Broker组件的Broker标识、所述集群名称、所述寻址服务节点路由信息的设置,得到待启动的备用节点集合;
对所述待启动的主节点依次执行节点服务停止命令和节点服务启动命令,得到所述待配置的Broker组件的所述主工作节点;
对所述待启动的备用节点集合中每个工作节点依次执行所述节点服务停止命令和所述节点服务启动命令,得到所述待配置的Broker组件的所有所述备用工作节点;
重复执行所述从所述待注册的Broker组件集合中获取所述Broker组件,得到待配置的Broker组件的步骤,直至确定所述待注册的Broker组件集合中所有所述Broker组件的所述主工作节点和所有所述备用工作节点。
4.根据权利要求1所述的RocketMQ的分布式部署方法,其特征在于,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤,包括:
根据所述RocketMQ配置文件将所有所述寻址服务节点进行通信连接,得到关联后的寻址服务节点集合;
根据所述RocketMQ配置文件将每个所述Broker组件和所述关联后的寻址服务节点集合中的每个所述寻址服务节点进行通信连接,得到关联后的Broker组件集合;
从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件;
调用所述待注册的Broker组件向所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点发送注册请求,所述注册请求携带有待注册的Broker组件路由信息;
调用所述待注册的Broker组件的所述工作节点的节点配置文件的寻址服务节点路由信息对应的所述寻址服务节点根据所述待注册的Broker组件路由信息更新消息分组与Broker组件对应数据表;
重复所述从所述关联后的Broker组件集合中获取所述Broker组件,得到待注册的Broker组件的步骤,直至将所述关联后的Broker组件集合中的所有所述Broker组件注册到所述消息分组与Broker组件对应数据表中;
根据所述关联后的寻址服务节点集合、所述关联后的Broker组件集合、所述消息分组与Broker组件对应数据表,得到所述目标RocketMQ集群。
5.根据权利要求1所述的RocketMQ的分布式部署方法,其特征在于,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
调用目标Broker组件按第一预设时间间隔向所述目标Broker组件对应的所述寻址服务节点发送待存储的心跳信息,所述待存储的心跳信息携带有所述目标Broker组件的消息分组配置信息,所述目标Broker组件是所述目标RocketMQ集群中的任一个所述Broker组件;
调用所述目标Broker组件对应的所述寻址服务节点根据所述待存储的心跳信息和所述目标Broker组件的所述消息分组配置信息更新心跳信息库;
调用所述目标RocketMQ集群的任一个所述寻址服务节点按第二预设时间间隔从所述心跳信息库中获取心跳时间最晚的心跳信息,得到待分析的心跳信息集合,获取当前时间,将所述当前时间分别减去所述待分析的心跳信息集合中的每个待分析的心跳信息的所述心跳时间,得到所述待分析的心跳信息集合中的所有所述待分析的心跳信息各自对应的心跳更新时长,当所述待分析的心跳信息对应的所述心跳更新时长大于预设心跳间隔时长时,根据所述待分析的心跳信息更新消息分组与Broker组件对应数据表。
6.根据权利要求1所述的RocketMQ的分布式部署方法,其特征在于,所述根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群的步骤之后,还包括:
调用所述目标RocketMQ集群的任一所述寻址服务节点的寻址服务端获取消息生成端发送的消息发布请求,所述消息发布请求携带有消息分组信息,根据所述消息发布请求携带的所述消息分组信息确定所述Broker组件的路由信息,得到目标路由信息,将所述目标路由信息发送给所述消息生成端,所述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件。
7.根据权利要求6所述的RocketMQ的分布式部署方法,其特征在于,所述目标路由信息用于所述消息生成端将待发布的消息发送给所述目标路由信息对应的所述Broker组件的步骤之后,包括:
调用所述目标路由信息对应的所述Broker组件将接收的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述主工作节点的消息队列;
调用所述目标路由信息对应的所述Broker组件的所述备用工作节点按预设同步时间间隔从所述目标路由信息对应的所述Broker组件的所述主工作节点获取所述待发布的消息,将获取的所述待发布的消息存储在所述目标路由信息对应的所述Broker组件的所述备用工作节点的消息队列中;
调用所述目标路由信息对应的所述Broker组件的所述主工作节点将所述待发布的消息发布给消息消费端。
8.一种RocketMQ的分布式部署装置,其特征在于,所述装置包括:
请求获取模块,用于获取RocketMQ集群部署请求,所述RocketMQ集群部署请求携带有待部署服务器组数据,所述待部署服务器组数据包括至少两个待部署服务器组,所述待部署服务器组与待部署机房一一对应;
节点部署模块,用于获取RocketMQ节点文件,采用所述RocketMQ节点文件分别在所述待部署服务器组数据中的每个所述待部署服务器组中部署一个寻址服务节点和至少两个工作节点;
Broker组件配置模块,用于获取RocketMQ配置文件,根据所述RocketMQ配置文件和所有所述工作节点进行Broker组件设置,得到待注册的Broker组件集合,所述待注册的Broker组件集合中每个Broker组件的至少两个所述工作节点位于至少两个所述待部署机房;
Broker组件的工作节点配置模块,用于根据所述RocketMQ配置文件将所述Broker组件中的所有所述工作节点分别配置为一个主工作节点和至少一个备用工作节点;
集群配置模块,用于根据所述RocketMQ配置文件将所有所述寻址服务节点和所述待注册的Broker组件集合进行集群配置,得到目标RocketMQ集群。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011633039.9A CN112769924B (zh) | 2020-12-31 | 2020-12-31 | RocketMQ的分布式部署方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011633039.9A CN112769924B (zh) | 2020-12-31 | 2020-12-31 | RocketMQ的分布式部署方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769924A CN112769924A (zh) | 2021-05-07 |
CN112769924B true CN112769924B (zh) | 2022-04-15 |
Family
ID=75699735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011633039.9A Active CN112769924B (zh) | 2020-12-31 | 2020-12-31 | RocketMQ的分布式部署方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769924B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113179333B (zh) * | 2021-06-30 | 2021-09-03 | 北京航空航天大学 | 一种用于区块链的文件传输与实时计算系统及方法 |
CN113641511B (zh) * | 2021-07-09 | 2024-06-04 | 阿里云计算有限公司 | 一种消息通信方法和装置 |
CN114189436B (zh) * | 2021-12-08 | 2024-04-30 | 深圳Tcl新技术有限公司 | 一种多集群配置部署方法、装置、电子设备和存储介质 |
CN114281349A (zh) * | 2021-12-28 | 2022-04-05 | 中国邮政储蓄银行股份有限公司 | 开源消息中间件RocketMQ集群的部署方法及装置 |
CN114827017B (zh) * | 2022-03-31 | 2024-01-30 | 北京声智科技有限公司 | Kafka集群的通信方法、装置、电子设备和存储介质 |
CN115080152B (zh) * | 2022-08-19 | 2022-12-27 | 飞狐信息技术(天津)有限公司 | 消息中间件的Broker配置方法、装置、计算机设备及介质 |
CN115396437B (zh) * | 2022-08-24 | 2023-06-13 | 中电金信软件有限公司 | 一种集群搭建方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383896A (zh) * | 2016-09-28 | 2017-02-08 | 浪潮软件集团有限公司 | 一种基于爬虫+RocketMQ的数据抓取分发方法 |
CN109639489A (zh) * | 2018-12-18 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种RabbitMQ集群部署方法、系统、设备和介质 |
CN110956485A (zh) * | 2018-09-27 | 2020-04-03 | 千寻位置网络有限公司 | 基于RocketMQ的消息订阅方法及组件、消息订阅系统 |
CN110989933A (zh) * | 2019-12-05 | 2020-04-10 | 北京首汽智行科技有限公司 | 一种消息队列RocketMq平滑迁移方法 |
CN111190766A (zh) * | 2019-12-12 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 基于HBase数据库的跨机房集群的容灾方法、装置和系统 |
WO2020228287A1 (zh) * | 2019-05-13 | 2020-11-19 | 平安科技(深圳)有限公司 | IoT-MQ 的消息存储方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-31 CN CN202011633039.9A patent/CN112769924B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383896A (zh) * | 2016-09-28 | 2017-02-08 | 浪潮软件集团有限公司 | 一种基于爬虫+RocketMQ的数据抓取分发方法 |
CN110956485A (zh) * | 2018-09-27 | 2020-04-03 | 千寻位置网络有限公司 | 基于RocketMQ的消息订阅方法及组件、消息订阅系统 |
CN109639489A (zh) * | 2018-12-18 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种RabbitMQ集群部署方法、系统、设备和介质 |
WO2020228287A1 (zh) * | 2019-05-13 | 2020-11-19 | 平安科技(深圳)有限公司 | IoT-MQ 的消息存储方法、装置、计算机设备和存储介质 |
CN110989933A (zh) * | 2019-12-05 | 2020-04-10 | 北京首汽智行科技有限公司 | 一种消息队列RocketMq平滑迁移方法 |
CN111190766A (zh) * | 2019-12-12 | 2020-05-22 | 北京淇瑀信息科技有限公司 | 基于HBase数据库的跨机房集群的容灾方法、装置和系统 |
Non-Patent Citations (3)
Title |
---|
"Study on Service Oriented Real-time Message Middleware";Yunlong Liang等;《2015 11th International Conference on Semantics,Knowledge and Grids(SKG)》;20160310;207-211 * |
"基于rocketMQ的消息服务系统设计与实现";张文杰;《中国优秀硕士学位论文全文数据库》;20190315;I138-438 * |
"生产环境部署高可用RocketMQ";Rugod;《CSDN博客https://blog.csdn.net/ITRugod/article/details/106971109》;20200626;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112769924A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112769924B (zh) | RocketMQ的分布式部署方法、装置、设备及介质 | |
CN112395140B (zh) | 去中心化的任务调度方法、装置、设备及介质 | |
CN112003728B (zh) | 一种基于Kubernetes集群的应用主备实现方法及装置 | |
CN110149366B (zh) | 提高集群系统可用性的方法、装置和计算机设备 | |
JP2009514282A (ja) | 高い利用可能性を有するネットワークシステム | |
CN105468500A (zh) | 定时任务监控方法和装置 | |
CN110750343B (zh) | 集群系统定时任务调度控制方法及集群系统 | |
CN109697078B (zh) | 非高可用性组件的修复方法、大数据集群和容器服务平台 | |
CN112865992A (zh) | 分布式主从系统中主节点的切换方法、装置和计算机设备 | |
CN110704172B (zh) | 集群系统定时任务调度方法及集群系统 | |
CN115509756A (zh) | 多集群计算任务提交方法及相关装置、设备 | |
CN115509676A (zh) | 一种容器集的部署方法及装置 | |
CN116820493A (zh) | 一种镜像文件部署方法、系统、设备及存储介质 | |
CN112433678B (zh) | 一种分布式存储系统的网络调整方法、装置、设备及介质 | |
CN113282400B (zh) | 基于接口路由的应用发布方法、装置、设备及存储介质 | |
CN110737670A (zh) | 一种集群数据一致性的保障方法、装置及系统 | |
CN113127053A (zh) | 应用环境参数的配置方法、装置、计算机设备及存储介质 | |
CN113419818A (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN115244912A (zh) | 文件分发方法、装置、电子设备和计算机可读存储介质 | |
CN112181436A (zh) | 服务部署方法、装置、服务器和可读存储介质 | |
CN110909048A (zh) | 数据查询方法、装置、服务器、客户端及存储介质 | |
US20230146880A1 (en) | Management system and management method | |
CN111338848B (zh) | 故障应用副本处理方法、装置、计算机设备和存储介质 | |
CN111338647B (zh) | 一种大数据集群管理方法和装置 | |
CN110166528B (zh) | 防止节点变更通知丢失的方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |