您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页一种基于Rabbit MQ的云服务器异步创建方法[发明专利]

一种基于Rabbit MQ的云服务器异步创建方法[发明专利]

来源:步遥情感网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 110417913 A(43)申请公布日 2019.11.05

(21)申请号 201910733451.9(22)申请日 2019.08.09

(71)申请人 浪潮云信息技术有限公司

地址 250100 山东省济南市高新区浪潮路

1036号浪潮科技园S01号楼(72)发明人 田雨 于昊 彭海燕 

(74)专利代理机构 济南信达专利事务所有限公

司 37100

代理人 孙晶伟(51)Int.Cl.

H04L 29/08(2006.01)G06F 9/54(2006.01)

权利要求书1页 说明书5页 附图1页

CN 110417913 A(54)发明名称

一种基于Rabbit MQ的云服务器异步创建方法

(57)摘要

本发明公开一种基于Rabbit MQ的云服务器异步创建方法,涉及分布式应用系统技术领域;针对云服务器的创建分别建立订单处理应用和资源创建应用,订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建,与现有技术相比,本发明降低订单处理和资源创建两个应用之间的耦合,促使订单处理和资源创建两个应用之间没有了相互依赖,成为两个的应用,符合分布式设计的架构,并且订单处理和资源创建不需对另一个应用的异常进行过多处理,减少了程序的复杂性,订单处理和资源创建应用分别进行重启,可重新读取Rabbit MQ中的消息进行后续处理,也提高了系统的稳定性。

CN 110417913 A

权 利 要 求 书

1/1页

1.一种基于Rabbit MQ的云服务器异步创建方法,其特征是针对云服务器的创建分别建立订单处理应用和资源创建应用,订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。

2.根据权利要求1所述的方法,其特征是订单处理应用与资源创建应用的通信过程为:订单处理应用和资源创建应用分别启动,并监听Rabbit MQ中的消息,

订单处理应用接收订单处理的请求,进行订单处理,通过Rabbit MQ将云服务器创建所需的资源消息发送到资源创建应用,

资源创建应用监听到云服务器创建所需的资源消息,启动资源创建工作,创建完成后,发送Rabbit MQ消息给订单处理应用,订单处理应用进行后续订单处理流程。

3.根据权利要求1或2所述的方法,其特征是Rabbit MQ分别配置订单处理应用的消息队列和资源创建应用的消息队列,订单处理应用监听订单处理应用的消息队列,资源创建应用监听资源创建应用的消息队列。

4.根据权利要求3所述的方法,其特征是Rabbit MQ配置死信队列,订单处理应用和资源创建应用发送的Rabbit MQ消息消费失败重试次数耗尽后,放入死信队列,避免业务队列消息阻塞。

5.一种基于Rabbit MQ的云服务器异步创建系统,其特征是包括订单处理单元、资源创建单元及Rabbit MQ,

订单处理单元建立订单处理应用,资源创建单元建立资源创建应用,订单处理单元和资源创建单元分别利用订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。

6.根据权利要求5所述的系统,其特征是订单处理单元和资源创建单元进行通信过程为:订单处理单元和资源创建单元分别启动订单处理应用和资源创建应用,并监听Rabbit MQ中的消息,

订单处理单元接收订单处理的请求,进行订单处理,通过Rabbit MQ将云服务器创建所需的资源消息发送到资源创建单元,

资源创建单元监听到云服务器创建所需的资源消息,启动资源创建工作,创建完成后,发送Rabbit MQ消息给订单处理单元,订单处理单元进行后续订单处理流程。

7.根据权利要求5或6所述的系统,其特征是Rabbit MQ分别配置订单处理应用的消息队列和资源创建应用的消息队列,订单处理单元监听订单处理应用的消息队列,资源创建单元监听资源创建应用的消息队列。

8.根据权利要求7所述的系统,其特征是Rabbit MQ配置死信队列,订单处理单元和资源创建单元发送的Rabbit MQ消息消费失败重试次数耗尽后,放入死信队列,避免业务队列消息阻塞。

2

CN 110417913 A

说 明 书

一种基于Rabbit MQ的云服务器异步创建方法

1/5页

技术领域

[0001]本发明公开一种基于Rabbit MQ的云服务器异步创建方法,涉及分布式应用系统技术领域。

背景技术

[0002]云服务器产品是云服务的核心和基本产品,对于云服务器的创建各厂商实现也不尽相同。云服务器的创建基本分为两个环节:订单处理和资源创建。目前是用户发起创建云服务器的订单,订单处理完成再发起云服务器资源创建的接口调用,云服务器接口调用收到创建消息后,返回收到消息进行资源创建的通知,并进行创建操作,创建完成后,通知用户资源创建成功。上述过程存在如下问题:[0003]订单处理和资源创建应用高度耦合,不符合分布式应用的设计原则,如果有应用的部署进行了变更等操作,另一个应用也要同步进行变更配置,后续升级维护工作繁琐,并且因为应用紧耦合,一个应用进行了重启或发生故障,容易导致另一个应用的访问出现问题,出现数据不一致、有些处理需要进行回滚等问题,大大降低整个系统的稳定性;[0004]而且因为订单处理和资源创建应用之间的交互,用户的访问信息需要在两个系统流转后才能进行响应,增加了访问时长,降低了用户体验。[0005]本发明提供一种基于Rabbit MQ的云服务器异步创建方法,优化两个应用的处理逻辑,对两个应用进行解耦,订单处理和资源创建通过Rabbit MQ进行消息传递,减少了应用之间的耦合,避免了因网络或节点故障导致的流程中断,优化了整个系统的流程。发明内容

[0006]本发明针对现有技术的问题,提供一种基于Rabbit MQ的云服务器异步创建方法,将多个应用之间直接调用,改为通过消息的方式传递,减少了应用之间的耦合,避免了因网络或节点故障导致的流程中断,优化了整个系统的流程。[0007]本发明提出的具体方案是:[0008]一种基于Rabbit MQ的云服务器异步创建方法,针对云服务器的创建分别建立订单处理应用和资源创建应用,订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。

[0009]所述的方法中订单处理应用与资源创建应用的通信过程为:订单处理应用和资源创建应用分别启动,并监听Rabbit MQ中的消息,[0010]订单处理应用接收订单处理的请求,进行订单处理,通过Rabbit MQ将云服务器创建所需的资源消息发送到资源创建应用,

[0011]资源创建应用监听到云服务器创建所需的资源消息,启动资源创建工作,创建完成后,发送Rabbit MQ消息给订单处理应用,订单处理应用进行后续订单处理流程。[0012]所述的方法中Rabbit MQ分别配置订单处理应用的消息队列和资源创建应用的消息队列,订单处理应用监听订单处理应用的消息队列,资源创建应用监听资源创建应用的

3

CN 110417913 A

说 明 书

2/5页

消息队列。

[0013]所述的方法中Rabbit MQ配置死信队列,订单处理应用和资源创建应用发送的Rabbit MQ消息消费失败重试次数耗尽后,放入死信队列,避免业务队列消息阻塞。[0014]一种基于Rabbit MQ的云服务器异步创建系统,包括订单处理单元、资源创建单元及Rabbit MQ,

[0015]订单处理单元建立订单处理应用,资源创建单元建立资源创建应用,订单处理单元和资源创建单元分别利用订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。

[0016]所述的系统中订单处理单元和资源创建单元进行通信过程为:订单处理单元和资源创建单元分别启动订单处理应用和资源创建应用,并监听Rabbit MQ中的消息,[0017]订单处理单元接收订单处理的请求,进行订单处理,通过Rabbit MQ将云服务器创建所需的资源消息发送到资源创建单元,

[0018]资源创建单元监听到云服务器创建所需的资源消息,启动资源创建工作,创建完成后,发送Rabbit MQ消息给订单处理单元,订单处理单元进行后续订单处理流程。[0019]所述的系统中Rabbit MQ分别配置订单处理应用的消息队列和资源创建应用的消息队列,订单处理单元监听订单处理应用的消息队列,资源创建单元监听资源创建应用的消息队列。

[0020]所述的系统中Rabbit MQ配置死信队列,订单处理单元和资源创建单元发送的Rabbit MQ消息消费失败重试次数耗尽后,放入死信队列,避免业务队列消息阻塞。[0021]本发明的有益之处是:

[0022]本发明提供一种基于Rabbit MQ的云服务器异步创建方法,针对云服务器的创建分别建立订单处理应用和资源创建应用,订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建,与现有技术相比,本发明降低订单处理和资源创建两个应用之间的耦合,促使订单处理和资源创建两个应用之间没有了相互依赖,成为两个的应用,符合分布式设计的架构,并且订单处理和资源创建不需对另一个应用的异常进行过多处理,减少了程序的复杂性,订单处理和资源创建应用分别进行重启,可重新读取Rabbit MQ中的消息进行后续处理,也提高了系统的稳定性。附图说明

[0023]图1现有技术中云服务器流程关系示意图,[0024]图2是本发明系统中流程关系示意图;[0025]图3是本发明方法流程示意图。

具体实施方式

[0026]本发明提供一种基于Rabbit MQ的云服务器异步创建方法,针对云服务器的创建分别建立订单处理应用和资源创建应用,订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。[0027]同时提供与上述方法相对应的一种基于Rabbit MQ的云服务器异步创建系统,包括订单处理单元、资源创建单元及Rabbit MQ,

4

CN 110417913 A[0028]

说 明 书

3/5页

订单处理单元建立订单处理应用,资源创建单元建立资源创建应用,订单处理单

元和资源创建单元分别利用订单处理应用与资源创建应用处理各自业务,通过Rabbit MQ消息进行通信,实现云服务器的创建。

[0029]下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。[0030]以某厂商云服务器的创建为例,利用本发明方法,先进行Rabbit MQ的配置:[0031]Exchange:exchange.region;死信Exchang:exchange.dlx,[0032]Queue:订单处理消息队列为queue.ecs.order,资源创建消息队列为queue.return.order,死信队列为queue.dlx,[0033]Routingkey:订单处理消息Routingkey为queue.ecs.order,资源创建消息Routingkey为:key.return.order,死信Routingkey为key.dlx;[0034]其中间隔时间可为1000ms,消息重试次数为3次,或根据使用情况进行设置,消息消费失败重试3次,消息消费失败后即重试次数耗尽后,将消息放入死信队列,而应用的拒绝消息而不是将消息重新放入队列,配合死信队列可避免业务队列消息阻塞。[0035]云服务器异步创建过程为:[0036]步骤1:订单处理应用和资源创建应用分别启动,并监听Rabbit MQ中的消息,订单处理应用监听queue.ecs.return中的消息,资源创建应用监听queue.ecs.order中的消息,启动监听成功后,等待用户的请求,[0037]步骤2:用户浏览器端进行云服务器资源的选配,并发起创建云服务器的订单,[0038]步骤3:订单处理应用收到订单处理的请求后,进行订单的校验、资源配额的核对、订单生成等处理,通过Rabbit MQ将云服务器所需资源创建的消息发送到资源创建应用,并通知用户订单已经创建正在进行资源创建;[0039]步骤4:资源创建应用监听到创建资源的消息,启动资源创建的工作,创建完成后,发送Rabbit MQ消息给订单处理应用;[0040]步骤5:订单处理应用监听到消息完成后续订单处理流程;[0041]步骤6:订单处理完成后,通知用户资源创建完成。[0042]步骤7:用户页面收到创建成功消息,并提示用户资源创建成功。[0043]至此,用户发起的创建云服务器的请求完成整个流程。[0044]采用本发明方法,订单处理和资源创建两个应用之间没有了相互依赖,成为两个的应用,符合分布式设计的架构。订单处理和资源创建只需关注自己的业务,不需对另一个应用的异常进行过多处理,减少了程序的复杂性。[0045]订单处理应用重新启动,正在进行中的云服务器创建任务和发送到Rabbit MQ消息中的创建任务没有受到影响,可以继续进行创建任务,创建成功后消息正常发送到Rabbit MQ中,没有影响创建任务的进行。订单处理应用启动完成后,通过监听Rabbit MQ中的消息,可以读取启动过程中Rabbit MQ接收的消息,发送给用户,用户能照常收到创建成功的消息。重启期间,除了用户不能发起订单创建操作,其他影响较小。[0046]资源创建应用重新启动,订单处理能继续接受用户的云服务器创建请求,并将云服务器创建消息发送到Rabbit MQ。资源创建应用启动成功后,通过监听Rabbit MQ中的消息,可以读取启动过程中Rabbit MQ接收的消息,并完成后续云服务器创建操作。创建成功

5

CN 110417913 A

说 明 书

4/5页

后,发送消息到Rabbit MQ。订单处理收到消息后,通知用户资源创建成功。重启期间,云服务器创建时长变长,但用户资源创建任务没有丢失,影响不是很大。[0047]通过以上测试,可以发现订单处理和资源创建通过Rabbit MQ进行消息传递,应用重启或故障期间,用户已发起的任务没有丢失,提高了系统的稳定性和用户体验。[0048]而利用本发明系统时,同样先进行Rabbit MQ的配置:[0049]Exchange:exchange.region;死信Exchang:exchange.dlx,[0050]Queue:订单处理消息队列为queue.ecs.order,资源创建消息队列为queue.return.order,死信队列为queue.dlx,[0051]Routingkey:订单处理消息Routingkey为queue.ecs.order,资源创建消息Routingkey为:key.return.order,死信Routingkey为key.dlx;[0052]其中间隔时间可为1000ms,消息重试次数为3次,或根据使用情况进行设置,消息消费失败重试3次,消息消费失败后即重试次数耗尽后,将消息放入死信队列,而应用的拒绝消息而不是将消息重新放入队列,配合死信队列可避免业务队列消息阻塞。[0053]系统对云服务器异步创建过程为:[0054]步骤1:订单处理单元和资源创建单元分别启动订单处理应用和资源创建应用,并监听Rabbit MQ中的消息,订单处理单元监听queue.ecs.return中的消息,资源创建单元监听queue.ecs.order中的消息,启动监听成功后,系统正常运行,等待用户的请求,[0055]步骤2:用户浏览器端进行云服务器资源的选配,并发起创建云服务器的订单,[0056]步骤3:订单处理单元收到订单处理的请求后,进行订单的校验、资源配额的核对、订单生成等处理,通过Rabbit MQ将云服务器所需资源创建的消息发送到资源创建单元,并通知用户订单已经创建正在进行资源创建;[0057]步骤4:资源创建单元监听到创建资源的消息,启动资源创建的工作,创建完成后,发送Rabbit MQ消息给订单处理单元;[0058]步骤5:订单处理单元监听到消息完成后续订单处理流程;[0059]步骤6:订单处理完成后,通知用户资源创建完成。[0060]步骤7:用户页面收到创建成功消息,并提示用户资源创建成功。[0061]至此,用户发起的创建云服务器的请求完成整个流程。[0062]本发明系统运行后,对订单处理和资源创建应用分别进行重启,系统整体业务受到的影响不是很大。

[0063]订单处理单元重新启动订单处理应用,正在进行中的云服务器创建任务和发送到Rabbit MQ消息中的创建任务没有受到影响,可以继续进行创建任务,创建成功后消息正常发送到Rabbit MQ中,没有影响创建任务的进行。订单处理应用启动完成后,通过监听Rabbit MQ中的消息,可以读取启动过程中Rabbit MQ接收的消息,发送给用户,用户能照常收到创建成功的消息。重启期间,除了用户不能发起订单创建操作,其他影响较小。[00]资源创建单元重新启动资源创建应用,订单处理应用能继续接受用户的云服务器创建请求,并将云服务器创建消息发送到Rabbit MQ。资源创建应用启动成功后,通过监听Rabbit MQ中的消息,可以读取启动过程中RabbitMQ接收的消息,并完成后续云服务器创建操作。创建成功后,发送消息到Rabbit MQ。订单处理收到消息后,通知用户资源创建成功。重启期间,云服务器创建时长变长,但用户资源创建任务没有丢失,影响不是很大。

6

CN 110417913 A[0065]

说 明 书

5/5页

通过以上测试,可以发现订单处理和资源创建通过Rabbit MQ进行消息传递,应用

重启或故障期间,用户已发起的任务没有丢失,提高了系统的稳定性和用户体验。[0066]以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

7

CN 110417913 A

说 明 书 附 图

1/1页

图1

图2

图3

8

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务