CN108199896A - 基于RabbitMQ的分布式消息发布系统 - Google Patents
基于RabbitMQ的分布式消息发布系统 Download PDFInfo
- Publication number
- CN108199896A CN108199896A CN201810041672.5A CN201810041672A CN108199896A CN 108199896 A CN108199896 A CN 108199896A CN 201810041672 A CN201810041672 A CN 201810041672A CN 108199896 A CN108199896 A CN 108199896A
- Authority
- CN
- China
- Prior art keywords
- back end
- rabbitmq
- platform
- module
- client
- 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.)
- Pending
Links
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- 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
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明基于RabbitMQ的分布式消息发布系统,其包括管理平台模块、数据节点模块和客户端模块。管理平台模块包括平台前端和平台后台程序集群,平台后台程序集群内置事件总线,多个平台后台程序通过事件总线维持元数据一致。平台后台程序集群与数据节点和客户端通讯连接,客户端连接数据节点。数据节点具有多个分组,每个分组包括多个VBroker,每个VBroker包括一个Broker或者一对Broker镜像。管理平台模块集成数据节点的自动部署、队列/广播的维护以及数据节点的状态监控,客户端模块用于获取数据节点配置信息,并将请求均匀发至数据节点。数据节点用于接收客户端请求,进行消息收发。本发明提供了简单、易用、可靠的分布式消息平台。
Description
技术领域
本发明涉及分布式技术领域,尤其涉及基于RabbitMQ的分布式消息发布系统。
背景技术
电信运营商的多个系统间常常需要进行数据和消息的传输,但系统间的耦合度过高不利于系统的稳定、高效和健壮,需要采用异步通信的方式来解耦并降低系统的风险。传统的单机版消息中间件在扩展性及高可用方面存在障碍,如消息服务器挂机则相关的系统均受影响。在高并发、大压力的情况下,单机的性能无法支撑。
发明内容
本发明的目的在于克服现有技术的不足,提供基于RabbitMQ的分布式消息发布系统。降低了分布式消息系统安装及运维的复杂度,实现了在线扩缩容、集群水平扩展、负载均衡、集群高可用、安全隔离的特性,增强了消息收发的可靠性。
本发明采用的技术方案是:
基于RabbitMQ的分布式消息发布系统,其包括管理平台模块、数据节点模块和客户端模块;
管理平台模块包括平台前端和平台后台程序集群,平台前端连接平台后台程序集群,平台后台程序集群通过内置事件总线维持元数据的一致;平台后台程序集群与数据节点和客户端通讯连接,客户端连接数据节点;数据节点具有多个分组,每个分组包括多个VBroker,每个VBroker包括一个Broker或者一对Broker镜像;
管理平台模块集成数据节点的自动部署、队列/广播的维护以及数据节点的状态监控,客户端模块通过管理平台模块获取数据节点的集群配置信息,并将请求均匀发至数据节点,数据节点用于消息的收发处理。
进一步地,管理平台模块的自动部署具体为在平台前端一键完成Erlang环境安装、配置文件修改及RabbitMQ部署的操作。
进一步地,管理平台模块的队列/广播的维护功能提供三种方式的广播:匿名方式、持久化方式和扩展通配方式。
进一步地,管理平台模块的队列/广播的维护功能在广播前将一个消费ID绑定到TOPIC上并由后台程序创建一用于消息收发的物理队列。
进一步地,管理平台模块对数据节点的状态监控具体为管理平台模块定期采集数据节点的运行状态,并在出现异常情况时发出告警,如有数据节点异常关闭则自动拉起。
进一步地,客户端模块内置路由策略,客户端模块通过路由策略将请求均匀地分发到分组内的各个数据节点上。
进一步地,客户端模块内置故障数据节点的隔离和重试功能。
本发明采用以上技术方案,管理平台模块创建实际队列用于广播消息收发,避免客户端闪断窗口内消息丢失,并提供三种广播方式实现:匿名方式、持久化方式、扩展通配方式,以适应不同业务需要。数据节点采用分组(Group)管理,从而实现分组间数据的安全隔离;每个分组内设多个镜像集群(VBroker),达到负载均衡;且分组结构具有高可用性,分组内部分节点出现故障不影响应用;分组结构便于在线扩缩容,扩缩容过程应用无感知无需停机。客户端在初始化时客户端模块通过管理平台获取到集群的配置信息,并通过路由策略使消息均匀地分发到分组的各个VBroker上,从而实现负载均衡。对发生故障的VBroker,客户端内置实现了故障节点的隔离和重试,确保系统的高可用。
本发明提供了一个简单、易用、可靠的分布式消息平台。本发明降低了分布式消息系统安装及运维的复杂度,实现了在线扩缩容、集群水平扩展、负载均衡、集群高可用、安全隔离的特性,增强了消息收发的可靠性。
附图说明
以下结合附图和具体实施方式对本发明做进一步详细说明;
图1为本发明基于RabbitMQ的分布式消息发布系统的结构示意图。
具体实施方式
如图1所示,本发明公开了基于RabbitMQ的分布式消息发布系统,其包括管理平台模块、数据节点模块和客户端模块。
管理平台模块包括平台前端和平台后台程序集群,平台前端连接平台后台程序集群,平台后台程序集群内置事件总线,多个平台后台程序通过事件总线维持元数据的一致。平台后台程序集群与数据节点和客户端通讯连接,客户端连接数据节点。数据节点具有多个分组,每个分组包括多个VBroker,每个VBroker包括一个Broker或者一对Broker镜像。
管理平台模块集成数据节点的自动部署、队列/广播的维护以及数据节点的状态监控。客户端模块通过管理平台模块获取到数据节点的集群配置信息,并将请求均匀发至数据节点,数据节点用于消息的收发处理。
具体的,Broker即RabbitMQ实例,VBroker即为RabbitMQ或RabbitMQ镜像集群,分组由本发明引入。在RabbitMQ集群使用过程中,使用者可以对分组进行在线扩缩容,应用无感知,无需重启应用,分组层提供线性的扩展能力。
进一步地,管理平台模块的自动部署具体为在平台前端一键完成Erlang环境安装、配置文件修改及RabbitMQ部署操作。
进一步地,管理平台模块的队列/广播的维护功能提供三种方式的广播:匿名方式、持久化方式和扩展通配方式。
进一步地,管理平台模块的队列/广播的维护功能在广播前将一个消费ID绑定到广播上并由后台程序创建一用于消息收发的物理队列,有效地避免了原本客户端连接断开窗口内广播消息丢失的问题,提高了消息收发的可靠性。
进一步地,管理平台模块对数据节点的状态监控具体为管理平台模块定期采集数据节点的运行状态,并在出现异常情况时发出告警。如果有数据节点发生故障,除了RabbitMQ本身的主从切换外,管理平台也会尝试拉起故障实例,保证了集群的高可用。此外,用户也可以通过前端页面查看数据节点及各队列目前的运行情况。
进一步地,客户端模块内置路由策略,客户端模块通过路由策略将请均匀地分发到分组内的各个数据节点上。
进一步地,客户端模块内置故障数据节点的隔离和重试功能。
本发明采用以上技术方案,
管理平台模块创建实际队列用于广播消息收发,避免客户端闪断时消息接收不到,并提供三种广播方式实现:匿名方式、持久化方式、扩展通配方式,适应不同业务需要。在数据节点采用分组(Group),从而实现分组间数据的安全隔离;每个分组内设多个镜像集群(VBroker),达到负载均衡;且分组结构具有高可用性,分组内有VBroker故障,客户端自动隔离重试;分组结构便于在线扩缩容,扩缩容过程中客户端不受影响。客户端在初始化时客户端模块通过管理平台获取到集群的配置信息,并通过路由策略使消息均匀地分发到分组的各个VBroker上,从而实现负载均衡。镜像集群中实例出现故障时,自动进行主从切换,管理平台会主动拉起故障实例。广播模式下客户端闪断,消息不丢失,且可在线扩缩容,扩缩容过程应用无感知,可有效提升性能表现。对发生故障的VBroker,客户端内置实现了故障节点的隔离和重试,确保系统的高可用。
本发明提供了一个简单、易用、可靠的分布式消息平台。本发明降低了分布式消息系统安装及运维的复杂度,实现了在线扩缩容、集群水平扩展、负载均衡、集群高可用、安全隔离的特性,增强了消息收发的可靠性。
Claims (7)
1.基于RabbitMQ的分布式消息发布系统,其特征在于:其包括管理平台模块、数据节点模块和客户端模块;
管理平台模块包括平台前端和平台后台程序集群,平台前端连接平台后台程序集群,平台后台程序集群通过内置事件总线维持元数据的一致;
平台后台程序集群与数据节点和客户端通讯连接,客户端连接数据节点;
数据节点具有多个分组,每个分组包括多个VBroker,每个VBroker包括一个Broker或者一对Broker镜像;
管理平台模块集成数据节点的自动部署、队列/广播的维护以及数据节点的状态监控;
客户端模块通过管理平台模块获取数据节点集群的配置信息,并将请求均匀发至数据节点,数据节点用于消息的收发处理。
2.根据权利要求1所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述管理平台模块的自动部署具体为在平台前端一键完成Erlang环境、配置文件修改及RabbitMQ部署的操作。
3.根据权利要求1所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述管理平台模块的队列/广播的维护功能提供三种方式的广播:匿名方式、持久化方式和扩展通配方式。
4.根据权利要求1所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述管理平台模块的队列/广播的维护功能在广播前将一个消费ID绑定到TOPIC上并由后台程序创建一用于消息收发的物理队列。
5.根据权利要求1所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述管理平台模块对数据节点的状态监控具体为管理平台模块定期采集数据节点的运行状态,并在出现异常情况时发出告警,如有数据节点异常关闭则自动拉起。
6.根据权利要求1所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述客户端模块内置路由策略,客户端模块通过路由策略将消息均匀地分发到分组内的各个数据节点上。
7.根据权利要求1或3所述的基于RabbitMQ的分布式消息发布系统,其特征在于:所述客户端模块内置故障数据节点的隔离和重试功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810041672.5A CN108199896A (zh) | 2018-01-16 | 2018-01-16 | 基于RabbitMQ的分布式消息发布系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810041672.5A CN108199896A (zh) | 2018-01-16 | 2018-01-16 | 基于RabbitMQ的分布式消息发布系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108199896A true CN108199896A (zh) | 2018-06-22 |
Family
ID=62589433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810041672.5A Pending CN108199896A (zh) | 2018-01-16 | 2018-01-16 | 基于RabbitMQ的分布式消息发布系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108199896A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933824A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种保持RabbitMQ服务的方法、系统及相关装置 |
CN109086189A (zh) * | 2018-07-23 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种物理基础设施管理器pim告警处理方法及设备 |
CN109101367A (zh) * | 2018-08-15 | 2018-12-28 | 郑州云海信息技术有限公司 | 云计算系统中组件的管理方法和装置 |
CN111314114A (zh) * | 2020-01-19 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种提高RabbitMQ高可用性的部署方法和系统 |
CN111857734A (zh) * | 2020-06-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种分布式深度学习模型平台部署及使用方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805287B1 (en) * | 2003-06-05 | 2010-09-28 | Verizon Laboratories Inc. | Node emulator |
CN103873523A (zh) * | 2012-12-14 | 2014-06-18 | 北京东方通科技股份有限公司 | 客户端集群访问方法及装置 |
CN105915405A (zh) * | 2016-03-29 | 2016-08-31 | 深圳市中博科创信息技术有限公司 | 一种大型集群节点性能监控系统 |
CN106302607A (zh) * | 2015-06-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用于云计算的块存储系统及方法 |
CN107315641A (zh) * | 2017-05-27 | 2017-11-03 | 杭州铭师堂教育科技发展有限公司 | 基于Qconf的消息队列高可用系统及方法 |
-
2018
- 2018-01-16 CN CN201810041672.5A patent/CN108199896A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805287B1 (en) * | 2003-06-05 | 2010-09-28 | Verizon Laboratories Inc. | Node emulator |
CN103873523A (zh) * | 2012-12-14 | 2014-06-18 | 北京东方通科技股份有限公司 | 客户端集群访问方法及装置 |
CN106302607A (zh) * | 2015-06-05 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 应用于云计算的块存储系统及方法 |
CN105915405A (zh) * | 2016-03-29 | 2016-08-31 | 深圳市中博科创信息技术有限公司 | 一种大型集群节点性能监控系统 |
CN107315641A (zh) * | 2017-05-27 | 2017-11-03 | 杭州铭师堂教育科技发展有限公司 | 基于Qconf的消息队列高可用系统及方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933824A (zh) * | 2018-06-28 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种保持RabbitMQ服务的方法、系统及相关装置 |
CN109086189A (zh) * | 2018-07-23 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种物理基础设施管理器pim告警处理方法及设备 |
CN109101367A (zh) * | 2018-08-15 | 2018-12-28 | 郑州云海信息技术有限公司 | 云计算系统中组件的管理方法和装置 |
CN111314114A (zh) * | 2020-01-19 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种提高RabbitMQ高可用性的部署方法和系统 |
CN111857734A (zh) * | 2020-06-19 | 2020-10-30 | 苏州浪潮智能科技有限公司 | 一种分布式深度学习模型平台部署及使用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108199896A (zh) | 基于RabbitMQ的分布式消息发布系统 | |
US6651190B1 (en) | Independent remote computer maintenance device | |
US7411973B2 (en) | System and method for interfacing with a management system | |
US7518983B2 (en) | Proxy response apparatus | |
US20030130969A1 (en) | Star intelligent platform management bus topology | |
US7558849B2 (en) | Hardware management module | |
US20080086580A1 (en) | System and method for managing baseboard management controller | |
EP1768320A2 (en) | Information processing apparatuses, communication method, communication load decentralizing method and communication system | |
WO2017050254A1 (zh) | 热备方法、装置及系统 | |
CN109857034B (zh) | 实时热备份综合数据处理系统 | |
US20050066218A1 (en) | Method and apparatus for alert failover | |
CN108712501A (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
CN108683618B (zh) | 通信设备和智能终端 | |
CN110740072A (zh) | 一种故障检测方法、装置和相关设备 | |
CN103647820A (zh) | 用于分布式集群系统的仲裁方法及仲裁装置 | |
CN110704250B (zh) | 一种分布式系统的热备份装置 | |
CN113194550B (zh) | 数据通道的构建方法、服务器及数据集群系统 | |
US7552355B2 (en) | System for providing an alternative communication path in a SAS cluster | |
WO2003060746A1 (en) | Remote sensing of power supply states | |
US9106558B2 (en) | Switch device, information processing apparatus, and method of controlling switching device | |
CN101467132B (zh) | 用于在通信网络中分配数据处理单元的方法和系统 | |
JPH10326260A (ja) | 分散コンピュータ・システムのハードウェア要素によりエラーを報告する方法 | |
CN106487598A (zh) | 异构冗余Snmp协议多实例实现系统及其实现方法 | |
DE112011105853T5 (de) | Verwaltung der Steuerung des Pufferzulaufs durch den Verbindungsstatus | |
US9491132B2 (en) | System and method for providing push service for reducing network loads |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180622 |