CN108199896A - 基于RabbitMQ的分布式消息发布系统 - Google Patents

基于RabbitMQ的分布式消息发布系统 Download PDF

Info

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
Application number
CN201810041672.5A
Other languages
English (en)
Inventor
王剑冰
刘波
肖忆南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Electric Fufu Mdt Infotech Ltd
Original Assignee
China Electric Fufu Mdt Infotech Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Electric Fufu Mdt Infotech Ltd filed Critical China Electric Fufu Mdt Infotech Ltd
Priority to CN201810041672.5A priority Critical patent/CN108199896A/zh
Publication of CN108199896A publication Critical patent/CN108199896A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

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的分布式消息发布系统。降低了分布式消息系统安装及运维的复杂度,实现了在线扩缩容、集群水平扩展、负载均衡、集群高可用、安全隔离的特性,增强了消息收发的可靠性。
本发明采用的技术方案是:
基于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的分布式消息发布系统,其特征在于:所述客户端模块内置故障数据节点的隔离和重试功能。
CN201810041672.5A 2018-01-16 2018-01-16 基于RabbitMQ的分布式消息发布系统 Pending CN108199896A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的消息队列高可用系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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