CN111314114A - 一种提高RabbitMQ高可用性的部署方法和系统 - Google Patents

一种提高RabbitMQ高可用性的部署方法和系统 Download PDF

Info

Publication number
CN111314114A
CN111314114A CN202010060592.1A CN202010060592A CN111314114A CN 111314114 A CN111314114 A CN 111314114A CN 202010060592 A CN202010060592 A CN 202010060592A CN 111314114 A CN111314114 A CN 111314114A
Authority
CN
China
Prior art keywords
rabbitmq
control node
service
virtual
node
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.)
Withdrawn
Application number
CN202010060592.1A
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010060592.1A priority Critical patent/CN111314114A/zh
Publication of CN111314114A publication Critical patent/CN111314114A/zh
Withdrawn legal-status Critical Current

Links

Images

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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Abstract

本发明提供一种提高RabbitMQ高可用性的部署方法及系统,所述方法包括:S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点实现负载均衡高可用。本发明通过设置镜像队列,以及虚拟IP对外提供RabbitMQ服务,对内指向可用的RabbitMQ控制节点实现负载均衡,从而最终实现镜像队列高可用。

Description

一种提高RabbitMQ高可用性的部署方法和系统
技术领域
本发明属于云平台技术领域,具体涉及一种提高RabbitMQ高可用性的部署方法及系统。
背景技术
RabbitMQ,是Rabbit消息队列,是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。
Cookie技术是客户端的解决方案,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。
随着云计算与大数据的发展,OpenStack作为一款开源的云计算管理平台,在各行业中的应用愈发广泛。各单位也愈加关注OpenStack在生产环境中的高可用性,为实现高可用的目标,涌现了很多设计方式。OpenStack的组件分布在不同的节点上,并通过消息队列实现协同工作。但在现有生产环境中实现OpenStack高可用,只是排除架构设计中每一层服务的单点故障,还没有关注消息队列服务高可用性。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种提高RabbitMQ高可用性的部署方法及系统,是非常有必要的。
发明内容
针对现有技术的上述现有生产环境中实现OpenStack高可用,只是排除架构设计中每一层服务的单点故障,还没有关注消息队列服务高可用性的缺陷,本发明提供一种提高RabbitMQ高可用性的部署方法及系统,以解决上述技术问题。
第一方面,本发明提供一种提高RabbitMQ高可用性的部署方法,包括如下步骤:
S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;
S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;
S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用。
进一步地,步骤S1具体步骤如下:
S11.设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
S12.将各RabbitMQ控制节点集成到一个RabbitMQ集群。通过主从控制节点设置,便于设置文件一致,保证集群内实现分布式存储。
进一步地,步骤S11具体步骤如下:
S111.获取所有运行RabbitMQ服务的OpenStack控制节点,并设置一个主控制节点,其他节点设置为从控制节点;
S112.停止从控制节点上的RabbitMQ服务,并将主控制节点的cookie文件拷贝到每个从控制节点;
S113.在每个从控制节点上设置cookie文件的属主为rabbitmq,并设置文件权限;
S114.在从控制节点上启动RabbitMQ服务,设置主从控制节点均为RabbitMQ控制节点。通过主从控制节点设置,实现各控制节点的cookie文件及文件权限一致,保证实现分布式存储。
进一步地,步骤S2具体步骤如下:
S21.获取所有RabbitMQ控制节点;
S22.在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像。设置镜像RabbitMQ服务队列,保证各RabbitMQ控制节点可对外提供相同的各RabbitMQ服务。
进一步地,步骤S3具体步骤如下:
S31.获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
S32.配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。虚拟IP相当于一种封装,外部组件可以不必知道内部是由哪个RabbitMQ控制节点提供的RabbitMQ镜像队列服务,而RabbitMQ控制节点故障时,可以无缝切换,用户体验好。
进一步地,步骤S31具体步骤如下:
S311.获取RabbitMQ服务的所有前端代理节点及每个前端代理节点的配置文件;
S312.在每个前端代理节点的配置文件中增加虚拟IP及各RabbitMQ控制节点IP;
S313.将各RabbitMQ控制节点IP生成控制节点IP队列,虚拟IP指向控制节点IP队列;
S314.重新加载各前端代理节点配置文件。前端代理节点接收外部组件的服务请求,对内通过虚拟IP选择合适的RabbitMQ控制节点提供服务。
进一步地,步骤S32具体步骤如下:
S321.RabbitMQ服务启用虚拟IP;
S322.当某个前端代理节点接收到组件的通信请求时,该前端代理节点依次判断控制节点IP队列中各RabbitMQ控制节点是否故障;
若首个RabbitMQ控制节点正常,则启动该RabbitMQ控制节点的镜像RabbitMQ服务队列;
若否,则定位到其他正常RabbitMQ控制节点,启动对应RabbitMQ控制节点的镜像RabbitMQ服务队列。RabbitMQ控制节点的个数越多,RabbitMQ服务的高可用性越好,在成本允许的条件下,增加RabbitMQ控制节点的数量,可提高RabbitMQ服务的高可用性。
第二方面,本发明提供一种提高RabbitMQ高可用性的部署系统,包括:
RabbitMQ集群配置模块,用于配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;
RabbitMQ服务配置模块,用于配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;
虚拟IP配置模块,用于配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用。
进一步地,RabbitMQ集群配置模块包括:
RabbitMQ服务分布式存储设置单元,用于设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
RabbitMQ控制节点集成单元,用于将各RabbitMQ控制节点集成到一个RabbitMQ集群。
进一步地,RabbitMQ服务配置模块包括:
RabbitMQ控制节点获取单元,用于获取所有RabbitMQ控制节点;
RabbitMQ服务队列镜像单元,用于在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像;
虚拟IP配置模块包括:
虚拟IP设置单元,用于获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
虚拟IP启动单元,用于配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。
本发明的有益效果在于,
本发明提供的提高RabbitMQ高可用性的部署方法及系统,通过在各RabbitMQ控制节点上设置镜像队列,并通过虚拟IP对外提供RabbitMQ服务,对内指向可用的RabbitMQ控制节点实现负载均衡,从而最终实现RabbitMQ服务的镜像队列高可用。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程示意图一;
图2是本发明的方法流程示意图二;
图3是本发明的方法流程示意图三;
图4是本发明的方法流程示意图四;
图5是本发明的系统示意图;
其中,1-RabbitMQ集群配置模块;1.1-RabbitMQ服务分布式存储设置单元;1.2-RabbitMQ控制节点集成单元;2-RabbitMQ服务配置模块;2.1-RabbitMQ控制节点获取单元;2.2-RabbitMQ服务队列镜像单元;3-虚拟IP配置模块;3.1-虚拟IP设置单元;3.2-虚拟IP启动单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种提高RabbitMQ高可用性的部署方法,包括如下步骤:
S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;
S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;
S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用。
实施例2:
如图1所示和图2所示,本发明提供一种提高RabbitMQ高可用性的部署方法,包括如下步骤:
S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;具体步骤如下:
S11.设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
S12.将各RabbitMQ控制节点集成到一个RabbitMQ集群;
S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;具体步骤如下:
S21.获取所有RabbitMQ控制节点;
S22.在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像;
S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用;具体步骤如下:
S31.获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
S32.配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。
实施例3:
如图1、图2、图3及图4所示,本发明提供一种提高RabbitMQ高可用性的部署方法,包括如下步骤:
S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;具体步骤如下:
S11.设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
具体步骤如下:
S111.获取所有运行RabbitMQ服务的OpenStack控制节点,并设置一个主控制节点,其他节点设置为从控制节点;
S112.停止从控制节点上的RabbitMQ服务,并将主控制节点的cookie文件拷贝到每个从控制节点;
S113.在每个从控制节点上设置cookie文件的属主为rabbitmq,并设置文件权限;
S114.在从控制节点上启动RabbitMQ服务,设置主从控制节点均为RabbitMQ控制节点;
S12.将各RabbitMQ控制节点集成到一个RabbitMQ集群;
S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;具体步骤如下:
S21.获取所有RabbitMQ控制节点;
S22.在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像;
S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用;具体步骤如下:
S31.获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;具体步骤如下:
S311.获取RabbitMQ服务的所有前端代理节点及每个前端代理节点的配置文件;
S312.在每个前端代理节点的配置文件中增加虚拟IP及各RabbitMQ控制节点IP;
S313.将各RabbitMQ控制节点IP生成控制节点IP队列,虚拟IP指向控制节点IP队列;
S314.重新加载各前端代理节点配置文件;
S32.配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点;具体步骤如下:
S321.RabbitMQ服务启用虚拟IP;
S322.当某个前端代理节点接收到组件的通信请求时,该前端代理节点依次判断控制节点IP队列中各RabbitMQ控制节点是否故障;
若首个RabbitMQ控制节点正常,则启动该RabbitMQ控制节点的镜像RabbitMQ服务队列;
若否,则定位到其他正常RabbitMQ控制节点,启动对应RabbitMQ控制节点的镜像RabbitMQ服务队列。
实施例4:
上述实施例3中,设置RabbitMQ服务运行在Openstack平台的三个控制节点上,云控制节点01,云控制节点02,云控制节点03,三个控制节点IP地址如下:
云控制节点01:100.7.47.100
云控制节点02:00.7.47.101
云控制节点03100.7.47.102
设置云控制节点01为主控制节点,云控制节点02和云控制节点03为从控制接,停止云控制节点02和云控制节点03上的RabbitMQ服务,并将云控制节点01的cookie文件拷贝到云控制节点02和云控制节点03;通过在云控制节点01实现如下代码:
scp/var/lib/rabbitmq/.erlang.cookie root@cc02:
/var/lib/rabbitmq/.erlang.cookie
scp/var/lib/rabbitmq/.erlang.cookie root@cc03:
/var/lib/rabbitmq/.erlang.cookie
在云控制节点02和云控制节点03上设置cookie文件的属主为rabbitmq,并设置文件权限为400;erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每个节点上要保持相同的.erlang.cookie文件,同时保证文件的权限是400;
通过在云控制节点02和03实现如下代码:
sudochownrabbitmq:rabbitmq/var/lib/rabbitmq/.erlang.cookie
sudochmod 400/var/lib/rabbitmq/.erlang.cookie
在云控制节点02和云控制节点03上启动RabbitMQ服务;通过在云控制节点02和03实现如下代码:
servicerabbitmq-server start
chkconfigrabbitmq-server on
将云控制节点01、云控制节点02以及云控制节点03加入同一个集群;通过在云控制节点02和03实现如下代码:
rabbitmqctlstop_app
rabbitmqctljoin-cluster rabbit@cc01
rabbitmqctlstatrt_app
配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;通过如下代码实现:
set_policy HA
‘^(?!amq.).*”{“ha-mode”:”all”,”ha-sync-nomde”:”automatic”}’
配置RabbitMQ服务的负载均衡;在前端代理节点1(IP地址100.7.47.120)和前端代理节点2(IP地址100.7.47.121)的配置文件中增加虚拟IP,虚拟IP的IP地址为100.7.47.47,并将虚拟IP指向云控制节点01、云控制节点02和云控制节点03;在前端代理节点1和前端代理节点2的配置文件中增加如下代码:
Listen rabbitmqcluster 10.7.47.47:5670
modetcp
balanceroundrobin
service cc01 10.7.47.100:5672 check inter 5s rise 2 fall 3
service cc02 10.7.47.101:5672 check inter 5s rise 2 fall 3
service cc03 10.7.47.102:5672 check inter 5s rise 2 fall 3
在前端代理节点1和前端代理节点2上通过如下代码重新加载配置文件:
servicehaproxy reload
配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用;需要重新配置OpenStack的每个服务,将服务队消息队列的请求指向虚拟IP10.7.47.47和端口5670;通过如下代码实现:
Nova:/etc/nova/nova.conf中增加配置:
rabbit_host=10.7.47.47
rabbit_port=5670
Glance:/etc/glance/glance-api.conf中增加配置:
rabbit_host=10.7.47.47
rabbit_port=5670
Neutron:/etc/neutron/neutron.conf中增加配置:
rabbit_host=10.7.47.47
rabbit_port=5670
Cinder:/etc/neutron/neutron.conf中增加配置:
rabbit_host=10.7.47.47
rabbit_port=5670
RabbitMQ服务启用虚拟IP 10.7.47.47;
当前端代理节点01接收到组件的通信请求时,前端代理节点01依次判断云控制节点01、云控制节点02以及云控制节点03是否故障;
若云控制节点01正常,则启动云控制节点01的镜像RabbitMQ服务队列;
若云控制节点01故障,则判断云控制节点02是否故障,若云控制节点02正常,则启动云控制节点02的镜像RabbitMQ服务队列;
若云控制节点01以及02均故障,则判断云控制节点03是否故障,若云控制节点03正常,则启动云控制节点03的镜像RabbitMQ服务队列;
RabbitMQ服务通过虚拟IP 10.7.47.47对外提供服务,对内则有三个云控制节点的镜像RabbitMQ服务队列可供选择,实现了高可用性。
实施例5:
如图5所示,本发明还提供一种提高RabbitMQ高可用性的部署系统,包括:
RabbitMQ集群配置模块1,用于配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;RabbitMQ集群配置模块1包括:
RabbitMQ服务分布式存储设置单元1.1,用于设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
RabbitMQ控制节点集成单元1.2,用于将各RabbitMQ控制节点集成到一个RabbitMQ集群;
RabbitMQ服务配置模块2,用于配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;RabbitMQ服务配置模块2包括:
RabbitMQ控制节点获取单元2.1,用于获取所有RabbitMQ控制节点;
RabbitMQ服务队列镜像单元2.2,用于在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像;
虚拟IP配置模块3,用于配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用;虚拟IP配置模块3包括:
虚拟IP设置单元3.1,用于获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
虚拟IP启动单元3.2,用于配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种提高RabbitMQ高可用性的部署方法,其特征在于,包括如下步骤:
S1.配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;
S2.配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;
S3.配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用。
2.如权利要求1所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S1具体步骤如下:
S11.设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
S12.将各RabbitMQ控制节点集成到一个RabbitMQ集群。
3.如权利要求2所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S11具体步骤如下:
S111.获取所有运行RabbitMQ服务的OpenStack控制节点,并设置一个主控制节点,其他节点设置为从控制节点;
S112.停止从控制节点上的RabbitMQ服务,并将主控制节点的cookie文件拷贝到每个从控制节点;
S113.在每个从控制节点上设置cookie文件的属主为rabbitmq,并设置文件权限;
S114.在从控制节点上启动RabbitMQ服务,设置主从控制节点均为RabbitMQ控制节点。
4.如权利要求1所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S2具体步骤如下:
S21.获取所有RabbitMQ控制节点;
S22.在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像。
5.如权利要求1所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S3具体步骤如下:
S31.获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
S32.配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。
6.如权利要求5所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S31具体步骤如下:
S311.获取RabbitMQ服务的所有前端代理节点及每个前端代理节点的配置文件;
S312.在每个前端代理节点的配置文件中增加虚拟IP及各RabbitMQ控制节点IP;
S313.将各RabbitMQ控制节点IP生成控制节点IP队列,虚拟IP指向控制节点IP队列;
S314.重新加载各前端代理节点配置文件。
7.如权利要求6所述的提高RabbitMQ高可用性的部署方法,其特征在于,步骤S32具体步骤如下:
S321.RabbitMQ服务启用虚拟IP;
S322.当某个前端代理节点接收到组件的通信请求时,该前端代理节点依次判断控制节点IP队列中各RabbitMQ控制节点是否故障;
若首个RabbitMQ控制节点正常,则启动该RabbitMQ控制节点的镜像RabbitMQ服务队列;
若否,则定位到其他正常RabbitMQ控制节点,启动对应RabbitMQ控制节点的镜像RabbitMQ服务队列。
8.一种提高RabbitMQ高可用性的部署系统,其特征在于,包括:
RabbitMQ集群配置模块(1),用于配置RabbitMQ集群;在Openstack平台的每个控制节点上配置RabbitMQ服务,生成若干个RabbitMQ控制节点,将各RabbitMQ控制节点集成到一个RabbitMQ集群;
RabbitMQ服务配置模块(2),用于配置各RabbitMQ控制节点的RabbitMQ服务使用镜像队列;
虚拟IP配置模块(3),用于配置RabbitMQ服务的前端代理节点使用虚拟IP,通过虚拟IP指向各RabbitMQ控制节点IP实现负载均衡高可用。
9.如权利要求8所述的提高RabbitMQ高可用性的部署系统,其特征在于,RabbitMQ集群配置模块(1)包括:
RabbitMQ服务分布式存储设置单元(1.1),用于设置RabbitMQ服务分布式存储在Openstack平台的各控制节点,并在各控制节点重新启动RabbitMQ服务,各控制节点形成RabbitMQ控制节点;
RabbitMQ控制节点集成单元(1.2),用于将各RabbitMQ控制节点集成到一个RabbitMQ集群。
10.如权利要求8所述的提高RabbitMQ高可用性的部署系统,其特征在于,RabbitMQ服务配置模块(2)包括:
RabbitMQ控制节点获取单元(2.1),用于获取所有RabbitMQ控制节点;
RabbitMQ服务队列镜像单元(2.2),用于在各RabbitMQ控制节点进行RabbitMQ服务的队列同步,实现RabbitMQ服务队列在所有RabbitMQ控制节点镜像;
虚拟IP配置模块(3)包括:
虚拟IP设置单元(3.1),用于获取RabbitMQ服务的所有前端代理节点,并在每个前端代理节点的配置文件中增加虚拟IP,虚拟IP指向各RabbitMQ控制节点IP;
虚拟IP启动单元(3.2),用于配置RabbitMQ服务启用虚拟IP,实现负载均衡高可用;其中,虚拟IP对外提供RabbitMQ服务,对内选择镜像队列可用的RabbitMQ控制节点。
CN202010060592.1A 2020-01-19 2020-01-19 一种提高RabbitMQ高可用性的部署方法和系统 Withdrawn CN111314114A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010060592.1A CN111314114A (zh) 2020-01-19 2020-01-19 一种提高RabbitMQ高可用性的部署方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010060592.1A CN111314114A (zh) 2020-01-19 2020-01-19 一种提高RabbitMQ高可用性的部署方法和系统

Publications (1)

Publication Number Publication Date
CN111314114A true CN111314114A (zh) 2020-06-19

Family

ID=71148345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010060592.1A Withdrawn CN111314114A (zh) 2020-01-19 2020-01-19 一种提高RabbitMQ高可用性的部署方法和系统

Country Status (1)

Country Link
CN (1) CN111314114A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003929A (zh) * 2020-08-21 2020-11-27 苏州浪潮智能科技有限公司 一种基于RabbitMQ集群热修复的方法、系统、设备及介质
CN112866388A (zh) * 2021-01-20 2021-05-28 网易(杭州)网络有限公司 服务器集群控制方法、装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753817A (zh) * 2013-12-25 2015-07-01 中国移动通信集团公司 一种云计算消息队列服务本地模拟方法和系统
CN104935672A (zh) * 2015-06-29 2015-09-23 杭州华三通信技术有限公司 负载均衡服务高可用实现方法和设备
CN107315641A (zh) * 2017-05-27 2017-11-03 杭州铭师堂教育科技发展有限公司 基于Qconf的消息队列高可用系统及方法
CN108199896A (zh) * 2018-01-16 2018-06-22 中电福富信息科技有限公司 基于RabbitMQ的分布式消息发布系统
CN109639489A (zh) * 2018-12-18 2019-04-16 郑州云海信息技术有限公司 一种RabbitMQ集群部署方法、系统、设备和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753817A (zh) * 2013-12-25 2015-07-01 中国移动通信集团公司 一种云计算消息队列服务本地模拟方法和系统
CN104935672A (zh) * 2015-06-29 2015-09-23 杭州华三通信技术有限公司 负载均衡服务高可用实现方法和设备
CN107315641A (zh) * 2017-05-27 2017-11-03 杭州铭师堂教育科技发展有限公司 基于Qconf的消息队列高可用系统及方法
CN108199896A (zh) * 2018-01-16 2018-06-22 中电福富信息科技有限公司 基于RabbitMQ的分布式消息发布系统
CN109639489A (zh) * 2018-12-18 2019-04-16 郑州云海信息技术有限公司 一种RabbitMQ集群部署方法、系统、设备和介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112003929A (zh) * 2020-08-21 2020-11-27 苏州浪潮智能科技有限公司 一种基于RabbitMQ集群热修复的方法、系统、设备及介质
CN112003929B (zh) * 2020-08-21 2022-05-13 苏州浪潮智能科技有限公司 一种基于RabbitMQ集群热修复的方法、系统、设备及介质
CN112866388A (zh) * 2021-01-20 2021-05-28 网易(杭州)网络有限公司 服务器集群控制方法、装置、存储介质及电子设备

Similar Documents

Publication Publication Date Title
US11765110B2 (en) Method and system for providing resiliency in interaction servicing across data centers
US8032780B2 (en) Virtualization based high availability cluster system and method for managing failure in virtualization based high availability cluster system
CN110224860B (zh) 负载均衡应用创建方法、装置、计算机设备及存储介质
CN111240763A (zh) 配置更新方法、装置、设备及存储介质
US20090300180A1 (en) Systems and methods for remote management of networked systems using secure modular platform
CN111614748B (zh) 用于可扩展的对等匹配的设备及方法
CN113783922A (zh) 负载均衡的方法、系统和装置
CN110808857B (zh) 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质
US11055108B2 (en) Network booting in a peer-to-peer environment using dynamic magnet links
CN110113406B (zh) 基于分布式的计算服务集群系统
CN111314114A (zh) 一种提高RabbitMQ高可用性的部署方法和系统
CN112953982A (zh) 一种服务处理的方法、服务配置的方法以及相关装置
CN105404530A (zh) 一种实现简易部署和使用私有云的系统及方法
CN114911602A (zh) 一种服务器集群的负载均衡方法、装置、设备和存储介质
CN112073499A (zh) 一种多机型云物理服务器的动态服务方法
CN111770176A (zh) 流量调度方法及装置
CN114205233B (zh) 一种面向数据管控的智能合约自适应配置与执行的系统
CN112822062A (zh) 一种用于桌面云服务平台的管理方法
CN113472849B (zh) 一种节点的管理方法、系统、设备以及介质
CN116954810A (zh) 容器应用实例的创建方法、系统、存储介质及程序产品
US11637737B2 (en) Network data management framework
US20200195731A1 (en) Lccs system and method for executing computation offloading
CN114615268B (zh) 基于Kubernetes集群的服务网络、监控节点、容器节点及设备
CN114710485B (zh) 处理方法和处理装置
CN115242856B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20200619

WW01 Invention patent application withdrawn after publication