CN111314114A - 一种提高RabbitMQ高可用性的部署方法和系统 - Google Patents
一种提高RabbitMQ高可用性的部署方法和系统 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 235000014510 cooky Nutrition 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 4
- 230000010354 integration Effects 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 23
- 238000013461 design Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 239000003818 cinder Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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
-
- 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
-
- 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/50—Network services
- H04L67/56—Provisioning 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,是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控制节点。
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)
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)
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集群部署方法、系统、设备和介质 |
-
2020
- 2020-01-19 CN CN202010060592.1A patent/CN111314114A/zh not_active Withdrawn
Patent Citations (5)
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)
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 |