CN111064672A - 云平台通信系统、选举方法及资源调度管理方法 - Google Patents
云平台通信系统、选举方法及资源调度管理方法 Download PDFInfo
- Publication number
- CN111064672A CN111064672A CN201911420275.XA CN201911420275A CN111064672A CN 111064672 A CN111064672 A CN 111064672A CN 201911420275 A CN201911420275 A CN 201911420275A CN 111064672 A CN111064672 A CN 111064672A
- Authority
- CN
- China
- Prior art keywords
- information
- software robot
- election
- voting
- state
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- 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/04—Network management architectures or arrangements
-
- 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/12—Discovery or management of network topologies
-
- 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
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Manipulator (AREA)
Abstract
本发明提出了一种云平台通信系统,提出了双向发布/订阅模式和集群一致性管理方法来保证云平台软件机器人领袖和群众之间的实时消息通信,集群内部消息的一致性,本发明根据数据中心的云平台资源调度实际情况,提出一种选举方法,提升云平台资源调度管理智能化,本发明提出了资源调度管理方法,通过实现机器人技术的云平台资源调度体系,提高系统自动运维能力,降低维护人员工作量。
Description
技术领域
本发明属于信息通信技术领域,具体涉及一种云平台软件机器人的通信系统、通信方法、基于通信系统的软件机器人领袖投票选举方法及采用软件机器人的云平台资源调度管理方法。
背景技术
消息中间件适用于需要可靠的数据传送的分布式环境,目前大部分的消息中间件都是为传统的客户端和服务器之间消息通信开发的,很少有为云平台软件机器人消息通信服务而设计的。
目前最为常见的是JMS平台,JMS是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。JMS定义了两种消息模型,(1)队列模型,这种模型用来解决生产者和消费者之间点到点的通信;(2)发布/订阅者模型,发布/订阅者模型支持向一个特定的消息主题发布消息,一个或多个订阅者可能对接收来自特定消息主题的消息感兴趣。
消息传递机制可以避免通信阻塞,增加系统的吞吐量,以及解耦不同系统直接交互,在不需要请求立即返回结果的场景下,这些特性带来了明显的通信优势。消息中间件的体系结构由消息生产者、消息中间件、消息消费者三个部分组成,消息的生产者和消息的消费者只和消息中间件交互,生产者和消费者不直接交互,而消息是从生产者到消费者的单向传递。
但目前的消息传递机制都是从生产者到消费者的单向传递,这对于交互性的消息通信需求是无解的,因此,现有的消息传递机制存在实时性差、一致性无法保证以及单向消息通信等问题。
随着开源技术的发展,以及国内公有云的普及,新型云平台技术已渐渐成熟,数据中心正由基于传统基础架构向云化平台演进。这种演进趋势使得数据中心的资源在管理调度方面手段更为灵活、规模更为广大、频度更为频繁,直接导致了管理调度任务繁重,并且存在大量的重复性工作。
现有的数据中心云资源调度机制并不能适应日益增长和更加灵活的海量多类型云数据应用任务需求。在云平台资源调度运维中,经常遇到这样的情况:某些底层硬件资源例如硬盘,突然失效不能继续工作,需要由新的资源去取代失效的资源继续工作;这时,究竟谁去分配和调度?调度的规则又是什么?这种硬件容错设计关系到云平台的可靠性。
传统云资源调度算法总体上还是难以脱离算法的复杂性,以至于在解决实际问题时操作复杂,效率低下,仍然需要大量的人工干预,不能做到云资源调度的智能化、另外,传统算法因为要考虑资源调度的冗余性,所以不能做到资源利用的最大化,存在资源浪费的问题。
通过研究软件机器人技术,开发相关软件应用到云平台的资源管理调度中,替代运维管理人员从事繁琐复杂冗长的云平台不间断监控及资源管理调度工作,并不断积累运维经验,最终提高云平台运维效率和能力、提升云平台管理水平、降低云平台资源调度成本、减轻云平台运维工作量、规避云平台操作风险,实现数据中心云平台资源调度自动化运维。
在实现自动化运维的过程中,在数据中心内部可以部署多个软件机器人来分摊运维压力,也可以部署多种软件机器人来执行不同的任务。在此情况下,使软件机器人通过模拟人类工作机制,使软件机器人能够自动选举领袖,由领袖负责协调任务分配,并负责在遇到解决方案出现分支的情况下进行决策。目前大部分选举算法是为了解决分布式中数据一致性问题,目前很难应用于实际中。
发明内容
为解决现有技术中的消息传递机制存在实时性差、一致性无法保证以及单向消息通信等问题,本发明提出了一种基于消息中间件的云平台软件机器人通信系统,在传统消息中间件通信模式的基础上,从基于软件机器人的云平台资源调度管理策略应用的具体需求出发,提出了双向发布/订阅模式和集群一致性管理方法来保证云平台软件机器人领袖和群众之间的实时消息通信,集群内部消息的一致性。
为解决现有技术中云平台资源调度重复性工作量大、自动化运维水平不高等问题,本发明根据数据中心的云平台资源调度实际情况,提出一种基于消息传递的软件机器人领袖投票选举方法,提升云平台资源调度管理智能化。
为解决现有技术中云平台资源调度重复性工作量大、自动化运维水平不高等问题,本发明提出了一种基于软件机器人技术的云平台资源调度管理方法,通过实现机器人技术的云平台资源调度体系,提高系统自动运维能力,降低维护人员工作量。
本发明所采用的技术方案是:一种云平台软件机器人通信系统,包括信息生产软件机器人、信息消费软件机器人、通信交换机和消息队列服务器;
所述信息生产软件机器人,用于生产信息,并将信息发布给通信交换机;所述信息包括具有指定主题的路由关键词;
所述通信交换机,用于接收信息生产软件机器人的信息并根据路由关键词将该消息路由到匹配的消息队列服务器;
所述消息队列服务器,用于接收通信交换机的消息,并对该信息的路由关键词进行广播;
所述信息消费软件机器人,用于根据路由关键词与消息队列服务器建立连接通道,通过连接通道订阅或获取所需的消息。
进一步的,所述消息队列服务器中包括绑定模块,所述绑定模块中存储有绑定关键词,用于与信息中的路由关键词进行匹配,建立通信交换机与信息队列服务器的绑定。
进一步的,所述通信交换机中包括路由确认命令发送模块,所述路由确认命令发送模块用于当信息路由至匹配的消息队列服务器上后,向信息生产软件机器人发送路由确认命令,所述路由确认命令包括信息ID。
进一步的,所述信息消费软件机器人中包括获取确认命令发送模块,所述确认命令发送模块用于当信息消费软件机器人从消息队列服务器上获取到信息后,向消息队列服务器发送获取确认命令,所述获取确认命令包括信息ID。
本发明还公开了一种云平台软件机器人通信方法,包括以下步骤:
信息生产软件机器人向通信交换机发布其生产的具有指定主题的路由关键词的信息;
通信交换机根据路由关键词将收到的信息路由至一个或多个匹配的消息队列服务器上,并向信息生产软件机器人发送路由确认命令;
信息消费软件机器人从消息队列服务器上获取所需的信息,并向消息队列服务器发送获取确认命令。
本发明还公开了一种软件机器人领袖投票选举方法,包括以下步骤:
S00:云平台集群中的处于竞选状态的软件机器人之间通过通信方法交换投票信息,所述投票信息包括选举作为领导者的软件机器人ID和选举作为领导者的软件机器人存储的数据ID;
S10:计数软件机器人判断当前投票数是否超过设定阈值,若超过,则判断当前选举成立,每一台软件机器人执行S20进行投票统计,否则,参与投票的软件机器人维持竞选状态,等待下一轮投票选举;
S20:判断自身投票信息中的选举作为领导者的软件机器人ID是否大于收到的投票信息中的选举作为领导者的软件机器人ID,若大于,则将自身的选举状态更新为领导者状态;若小于,则将自身的选举状态更新为随从状态;若等于,则执行S30:
S30:判断自身投票信息中的数据ID是否大于收到的投票信息中的数据ID,若大于,则将自身的选举状态更新为领导者状态,否则将自身的选举状态更新为随从状态。
进一步的,所述云平台集群由至少两台软件机器人组成。
进一步的,在S00之前还包括以下步骤:
对云平台集群中的所有软件机器人根据权重从小到大进行编号,得到软件机器人ID,对每个软件机器人中存储的数据按照存储时间长到短进行编号,得到数据ID。
本发明还公开了一种软件机器人领袖投票选举系统,包括:
多个软件机器人,用于进行投票选举;
选举主题消息中间件,用于实现进行投票选举时软件机器人之间的通讯;
计数模块,用于统计投票数,并根据投票数判断当前投票是否成立,若投票成立,则向多个软件机器人发起选举命令,若不成立,则中断当前投票。
进一步的,所述软件机器人中包括:
投票信息生产模块,用于生产具有选举主题路由关键词的投票信息,所述投票信息包括选举作为领导者的软件机器人ID和选举作为领导者的软件机器人存储的数据ID;
投票信息接收模块,用于接收来自云平台集群中其他软件机器人发送的投票信息;
软件机器人ID比较模块,用于比较自身投票信息中的选举作为领导者的软件机器人ID与收到的投票信息中的选举作为领导者的软件机器人ID的权重大小,若大于,则向选举状态模块发送将自身的选举状态更新为领导者状态的命令;若小于,则向选举状态模块发送将自身的选举状态更新为随从状态的命令;若等于,则激活数据ID比较模块进行数据ID比较;
数据ID比较模块,用于比较自身投票信息中的数据ID与收到的投票信息中的数据ID的权重大小,若大于,则向选举状态模块发送将自身的选举状态更新为领导者状态的命令,否则向选举状态模块发送将自身的选举状态更新为随从状态的命令;
选举状态模块,用于根据接收到的命令更新软件机器人的选举状态,所述选举状态包括领导者状态、随从状态和竞选状态。
本发明还公开了一种云平台资源调度管理方法,包括以下步骤:
步骤1:根据业务需求部署云平台集群,并初始化云平台集群;
步骤2:选举得到领袖软件机器人和群众软件机器人;
步骤3:领袖软件机器人根据来自客户端的事务请求和/或群众软件机器人实时上报的工作状态,生产调度信息,该调度信息通过调度主题消息中间件发送给群众软件机器人,群众软件机器人根据调度信息执行各自的任务,并实时向领袖软件机器人上报工作状态和任务结果;
步骤4:循环执行步骤3,直至完成客户端的事务请求。
进一步的,所述步骤3还包括:当领袖软件机器人收到群众软件机器人上报的工作状态和任务结果后,向群众软件机器人发送回报信息确认,若在规定时间内超过半数的群众软件机器人没有收到回报信息,则执行步骤2重新选举领袖。
有益效果:
本发明提出的基于消息中间件的云平台软件机器人通信方式,通过双向发布/订阅和集群一致性管理在满足云平台资源使用的前提下实现可以保障在软件机器人之间的实时、安全、一致性通信。本发明充分考虑了云平台软件机器人的实际通信需求,在客户端和服务器的消息中间件通信基础上,提出符合云平台应用需求的通信方式,提升了云平台的资源实时调度管理能力。并且本发明的方法采用高可用集群,保证了节点的一致性,为云平台软件机器人的消息通信提供了技术保障,在实际应用中发挥了强大的作用,创造了很大的价值。
本发明提出的云平台资源调度管理方法具有以下优点:
1、基于软件代码的软件机器人技术,通过特定算法对数据中心的告警、故障和资源调度需求进行自动化判断并执行,减轻运维人员压力;
2、基于软件机器人的云资源调度策略在云平台进程上部署软件机器人,通过实时的云平台资源监控,由选举出的领袖对所属的群众进行资源的实时合理的调度,使得所有资源处在正常的工作状态,以达到节约资源、实时调度的目的;
3、本发明将软件机器人的选举投票机制引入到云平台资源调度中,通过软件机器人实现7X24小时云平台资源监控,自动确定机器人领袖选举机制一起协同工作,使得平台资源调度具备人工智能,从而大大减轻了维护人员的工作。
4、替代运维管理人员从事繁琐复杂冗长的云平台不间断监控及资源管理调度工作,并不断积累运维经验,最终提高云平台自动化运维效率和能力、提升云平台管理水平、降低云平台资源调度成本、减轻云平台运维工作量、规避云平台操作风险。
附图说明:
图1为消息中间件的示意图;
图2为云平台软件机器人工作原理;
图3为软件机器人消息传递的示意图;
图4为软件机器人投票选举流程示意图;
图5为云平台资源调度管理方法的流程示意图;
图6为不同集群的领袖和群众消息通信示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合具体实施方式,进一步阐明本发明。
实施例1:
如图1所示,本实施例为基于消息中间件的云平台消息通信系统,针对云平台集群中软件机器人之间的信息通信,满足基于软件机器人的云平台资源调度管理对信息通信的实时性和一致性的要求。本实施例的通信系统包括消息中间件、信息生产软件机器人和信息消费群众软件机器人;所述消息中间件基于AMQP协议实现,包括通信交换机exchange和消息队列服务器queue;具体的,本实施例的信息生产软件机器人,用于生产具有指定路由关键词的信息,并将信息发布给通信交换机;通信交换机,用于接收信息生产软件机器人的信息并根据信息中的路由关键词与消息队列服务器queue的绑定信息binding中存储的绑定关键词对比,对比一致后,将消息路由到匹配的消息队列服务器;消息队列服务器,用于接收通信交换机的消息,并对该信息的路由关键词进行广播;信息消费软件机器人,用于根据路由关键词与消息队列服务器建立连接通道channel,通过连接通道channel获取所需的消息,每个连接通道channel之间是完全隔离的。
本实施例的消息队列服务器中包括绑定模块,所述绑定模块中存储有绑定关键词,用于与信息中的路由关键词进行匹配,建立通信交换机与信息队列服务器的绑定,通信交换机中包括路由确认命令发送模块,路由确认命令发送模块用于当信息路由至匹配的消息队列服务器上后,向信息生产软件机器人发送路由确认命令,所述路由确认命令包括信息ID,信息消费软件机器人中包括获取确认命令发送模块,确认命令发送模块用于当信息消费软件机器人从消息队列服务器上获取到信息后,向消息队列服务器发送获取确认命令,所述获取确认命令包括信息ID;消息队列服务器包括信息删除模块,所述信息删除模块用于根据收到的获取确认命令删除对应的消息。
在本实施例的通信系统中,可以让多个订阅者对象同时监听某一个主题对象,也可以让订阅者成为发布者并同时监听另外一个主题对象。主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态,主体对象可以是信息发布者本身。
本实施例中,软件机器人之间采用AMQP协议进行通信,使得遵从该协议的客户端应用和消息中间件服务器的全功能互操作成为可能,能够保证消息的一致性。
实施例2:
本实施例在实施例1的基础上,公开了一种云平台消息通信方法,具体包括以下步骤:
信息生产软件机器人向通信交换机发布其生产的具有指定路由关键词的信息;
通信交换机根据路由关键词将收到的信息路由至一个或多个匹配的消息队列服务器上,并向信息生产软件机器人发送路由确认命令;
信息消费软件机器人从消息队列服务器上获取所需的信息,并向消息队列服务器发送获取确认命令。
在本实施例中,信息消费软件机器人接到消息以后,都需要给消息队列服务器发送一条确认命令,通过向信息生产软件机器人发送路由确认命令来感知消息是否已被路由到正确的消息队列服务器中,该路由确认命令包括该消息的ID,这样信息生产软件机器人就会知道该消息已被正确分发。
实施例3:
如图2-4所示,本实施例在实施例1或实施例2的基础上,公开了一种软件机器人领袖投票选举方法,实现云平台中的软件机器人模拟人类行为进行投票选举,得到领袖软件机器人和群众软件机器人,提高云平台资源调度管理的智能化,减轻运维人员工作负担,领袖软件机器人和群众软件机器人既是发布者又是订阅者,两个身份之间可以进行双向实时通信,通过定义不同主题,将不同种类的消息分别通过不同的队列进行传递。
根据实际监控情况制定选举策略,比如当监控到资源使用率小于某个值时,进行选举程序,软件机器人在不同情况下进行领袖选举,能够智能化的选举出最合适恰当的领袖软件机器人,由领袖软件机器人管理群众软件机器人,省去了大量重复性的运维工作;
本实施例的领袖投票选举包括集群初始化启动时期的领袖选举和运行期间领袖软件机器人崩溃后的领袖选举。
每个软件机器人启动时的选举状态均为竞选状态,且在进行领袖选举时,至少需要两台软件机器人,现以4台软件机器人组成的集群为例,简单说明集群初始化启动时期的领袖选举:
每个软件机器人均有各自的ID,ID越大,在选举领袖时权重越大,每个软件机器人中均存储有各自的数据,每个数据也均有各自的数据ID,数据ID越大说明数据越新,在选举中数据权重越大。
对集群中的4台软件机器人进行编号,分别为1,2,3,4,按编号依次启动,选举过程如下:
软件机器人1启动,给自己投票,然后向其他软件机器人发送投票信息,由于其他软件机器人还没有启动,故软件机器人1收不到其他软件机器人的投票信息,此处软件机器人1的选举状态一直为选举状态Looking;投票信息包括:选举领袖的ID(软件机器人1),其存储的数据ID,Epoch。Epoch会随着选举轮数的增加而递增;
软件机器人2启动,给自己投票,与集群中的其他软件机器人交换投票信息,因为当前集群中只有软件机器人1启动,故只能与启动的软件机器人1交换投票信息,首先需判断当前投票是否成立,由于当前投票数不大于半数,故当前投票不成立,软件机器人1和软件机器人2的选举状态均保持为选举状态Looking;
软件机器人3启动,给自己投票,与软件机器人1和软件机器人2交换投票信息,由于当前投票数大于半数,此次投票成立,再判断投票信息中的选举领袖ID,软件机器人3的投票信息中的选举领袖ID为软件机器人3,软件机器人2的投票信息中的选举领袖ID为软件机器人2,接收到的软件机器人1的投票信息中的选举领袖ID为软件机器人1,所以软件机器人3胜出,软件机器人3的选举状态更改为领导者状态LEADING;而对于软件机器人2,接收来自软件机器人1和软件机器人3的投票信息,由于软件机器人2的ID小于软件机器人3,所以软件机器人2的选举状态更改为随从状态FOLLOWING,同步领袖软件机器人的数据;软件机器人1与软件机器人2同理,选举状态更改为随从状态FOLLOWING;
软件机器人4启动,给自己投票,与软件机器人1、2和3交换投票信息,由于此时集群中与存在领袖软件机器人,故软件机器人4的选举状态更新为随从状态FOLLOWING。
现以软件机器人1和软件机器人2交换投票信息为例,说明本实施例如何利用消息中间件完成软件机器人之间的通信:
软件机器人1向软件机器人2发送投票信息时,软件机器人1作为信息生产软件机器人,将具有选举主题的路由关键词的投票信息发布至通信交换机,再由通信交换机路由至匹配的消息队列服务器上,软件机器人2作为信息消费软件机器人从消息队列服务器上获取软件机器人1的投票信息;当软件机器人2向软件机器人1发送投票信息时,过程如上。
现简单说明群众软件机器人和领袖软件机器人的状态同步的过程:
领袖软件机器人将具有选举主题的路由关键词的数据发布至通信交换机,再由交换机路由至匹配的消息队列服务器上,群众软件机器人从消息队列服务器上获取领袖软件机器人的状态数据,实现与领袖软件机器人的状态同步。
本实施例只允许唯一的领袖来进行事务请求的处理。当集群中已经有过半的群众软件机器人完成了和领袖软件机器人的状态同步,那么当领袖在接收到客户端的命令后,会生成对应的事务提案并发起一轮广播协议。
本实施例中采用额外的服务器统计投票数,并判断当前投票是否成立。
运行期间的领袖选举,现简单说明如下:
运行期间,领袖软件机器人与非领袖软件机器人各司其职,即便当有非领袖软件机器人宕机或新加入,此时也不会影响领袖软件机器人,但是一旦领袖软件机器人因为自身或其他原因出现问题,则集群中重新发起新的选举,选举过程与启动时期的领袖选举过程一致。
启动时期的领袖选举和运行期间的领袖选举,各软件机器人之间均采用实施例1中的消息中间件完成通讯,通过设定选举主题路由关键词实现。
当接入新的软件机器人时,该新的软件机器人以群众的身份在集群中运行,可参与下一次领袖的投票选举;具体的,当集群中已经有过半的群众完成了和领导的状态同步,那么整个服务框架就可以进入消息广播模式了。当一台同样遵守软件机器人协议的群众进程启动后加入到集群中时,如果此时集群中已经存在一个领袖在负责进行消息广播,那么新加入的进程就会自觉地进入群众模式:找到领袖所在的服务器,并与其进行数据同步,然后一起参与到消息广播流程中去。
实施例4:
如图5-6所示,本实施例的基本思想:在实现自动化运维的过程中,数据中心内部可能会部署多个软件机器人来分摊运维压力,也可能会部署多种软件机器人来执行不同的任务,本实施例提出基于软件机器人技术的云平台资源调度管理机制,通过模拟人类工作机制,使软件机器人也会选举领袖,由领袖负责协调任务分配,并负责在遇到解决方案出现分支的情况下进行决策,通过选举的办法投票选举出一个领袖,并将自己的工作任务实时向领袖报告,并接受领袖分派过来的任务,当领袖发现自己管理的成员出现故障,就会及时的将故障资源应该处理的任务分派给其他正常工作或空闲待命的资源;如果领袖自身出现故障,根据当时情况和规则再投票选举出一个新的领袖,并有新的领袖继续领导大家协同工作,以此替代运维管理人员从事繁琐复杂冗长的云平台不间断监控及资源管理调度工作,并不断积累运维经验,最终提高云平台自动化运维效率和能力、提升云平台管理水平、降低云平台资源调度成本、减轻云平台运维工作量、规避云平台操作风险。
本实施例的实施步骤如下:
步骤1:在云资源平台中,根据业务需求部署软件机器人集群,通过软件机器人技术实现7X24小时云平台资源监控,并通过对消息中间件的互操作,云平台中软件机器人与软件机器人之间的信息交流;
步骤2:采用实施例3的领袖选举方法,软件机器人进行领袖选举,由领袖软件机器人领导群众软件机器人协同工作;
群众软件机器人对资源监控数据进行实时处理,将异常数据及时反馈给领袖软件机器人,领袖软件机器人根据资源监控及分析结果,对云平台的资源进行重新分配,使得各进程能够均衡完成分配任务。
本实施例中建立群众上报机制,使群众软件机器人能实时向领袖软件机器人上报自己的工作状态,领袖软件机器人以此来确认管辖的群众软件机器人是否正常工作,若领袖软件机器人在规定时间内没能收到上报信息,则判断该群众软件机器人失效故障,领袖软件机器人及时将该群众软件机器人的任务分派给其他群众软件机器人或空闲待命的群众软件机器人。
本实施例中建立领袖回报机制,使领袖软件机器人在收到群众软件机器人的上报信息后,领袖软件机器人要向群众软件机器人发回报信息确认,以此来证明领袖软件机器人自己处于正常状态,如果集群中,在规定时间内有超过半数的群众软件机器人没有收到回报信息,则意味着该领袖软件机器人失效故障,群众软件机器人要选举新的领袖。
图2是整个云平台软件机器人工作原理图,系统通过监控软件Zabbix进行云平台各资源的实时监控,然后将监控数据传给领袖软件机器人,由领袖软件机器人对各群众软件机器人的运行状况进行判断,如果出现软件机器人资源不足或空闲较多的情况,则进行资源调度的管理,使得云平台资源的利用率最大化。这期间,领袖软件机器人的调度消息通过调度主题的消息中间件发送给群众软件机器人。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (12)
1.一种云平台通信系统,其特征在于:包括信息生产软件机器人、信息消费软件机器人、通信交换机和消息队列服务器;
所述信息生产软件机器人,用于生产信息,并将信息发布给通信交换机;所述信息包括具有指定主题的路由关键词;
所述通信交换机,用于接收信息生产软件机器人的信息并根据路由关键词将该消息路由到匹配的消息队列服务器;
所述消息队列服务器,用于接收通信交换机的消息,并对该信息的路由关键词进行广播;
所述信息消费软件机器人,用于根据路由关键词与消息队列服务器建立连接通道,通过连接通道订阅或获取所需的消息。
2.根据权利要求1所述的一种云平台通信系统,其特征在于:所述消息队列服务器中包括绑定模块,所述绑定模块中存储有绑定关键词,用于与信息中的路由关键词进行匹配,建立通信交换机与信息队列服务器的绑定。
3.根据权利要求1所述的一种云平台通信系统,其特征在于:所述通信交换机中包括路由确认命令发送模块,所述路由确认命令发送模块用于当信息路由至匹配的消息队列服务器上后,向信息生产软件机器人发送路由确认命令,所述路由确认命令包括信息ID。
4.根据权利要求1所述的一种云平台通信系统,其特征在于:所述信息消费软件机器人中包括获取确认命令发送模块,所述确认命令发送模块用于当信息消费软件机器人从消息队列服务器上获取到信息后,向消息队列服务器发送获取确认命令,所述获取确认命令包括信息ID。
5.基于权利要求1或4任意一项所述的一种云平台通信系统的通信方法,其特征在于:包括以下步骤:
信息生产软件机器人向通信交换机发布其生产的具有指定主题的路由关键词的信息;
通信交换机根据路由关键词将收到的信息路由至一个或多个匹配的消息队列服务器上,并向信息生产软件机器人发送路由确认命令;
信息消费软件机器人从消息队列服务器上获取所需的信息,并向消息队列服务器发送获取确认命令。
6.基于权利要求1或4任意一项所述的一种云平台通信系统的选举方法,其特征在于:包括以下步骤:
S00:在云平台集群中的软件机器人之间交换投票信息,所述投票信息包括选举作为领导者的软件机器人ID和选举作为领导者的软件机器人存储的数据ID;
S10:判断当前投票数是否超过设定阈值,若超过,则判断当前选举成立,每一台软件机器人执行S20进行投票统计,否则,参与投票的软件机器人维持竞选状态,等待下一轮投票选举;
S20:判断自身投票信息中的选举作为领导者的软件机器人ID是否大于收到的投票信息中的选举作为领导者的软件机器人ID,若大于,则将自身的选举状态更新为领导者状态;若小于,则将自身的选举状态更新为随从状态;若等于,则执行S30:
S30:判断自身投票信息中的数据ID是否大于收到的投票信息中的数据ID,若大于,则将自身的选举状态更新为领导者状态,否则将自身的选举状态更新为随从状态。
7.根据权利要求6所述的选举方法,其特征在于:所述云平台集群由至少两台软件机器人组成。
8.根据权利要求6所述的选举方法,其特征在于:在S00之前还包括以下步骤:
对云平台集群中的所有软件机器人根据权重从小到大进行编号,得到软件机器人ID,对每个软件机器人中存储的数据按照存储时间长到短进行编号,得到数据ID。
9.基于权利要求6-8任意一项所述的选举方法的选举系统,其特征在于:包括:
多个软件机器人,用于进行投票选举;
选举主题消息中间件,用于实现进行投票选举时软件机器人之间的通讯;
计数模块,用于统计投票数,并根据投票数判断当前投票是否成立,若投票成立,则向多个软件机器人发起选举命令,若不成立,则中断当前投票。
10.根据权利要求9所述的选举系统,其特征在于:所述软件机器人中包括:
投票信息生产模块,用于生产具有选举主题路由关键词的投票信息,所述投票信息包括选举作为领导者的软件机器人ID和选举作为领导者的软件机器人存储的数据ID;
投票信息接收模块,用于接收来自云平台集群中其他软件机器人发送的投票信息;
软件机器人ID比较模块,用于比较自身投票信息中的选举作为领导者的软件机器人ID与收到的投票信息中的选举作为领导者的软件机器人ID的权重大小,若大于,则向选举状态模块发送将自身的选举状态更新为领导者状态的命令;若小于,则向选举状态模块发送将自身的选举状态更新为随从状态的命令;若等于,则激活数据ID比较模块进行数据ID比较:
数据ID比较模块,用于比较自身投票信息中的数据ID与收到的投票信息中的数据ID的权重大小,若大于,则向选举状态模块发送将自身的选举状态更新为领导者状态的命令,否则向选举状态模块发送将自身的选举状态更新为随从状态的命令;
选举状态模块,用于根据接收到的命令更新软件机器人的选举状态,所述选举状态包括领导者状态、随从状态和竞选状态。
11.基于权利要求6-8任意一项所述的选举方法的资源调度管理方法,其特征在于:包括以下步骤:
步骤1:根据业务需求部署至少由两台软件机器人组成的云平台集群,并初始化云平台集群;
步骤2:通过选举得到领袖软件机器人和群众软件机器人;
步骤3:领袖软件机器人根据来自客户端的事务请求和/或群众软件机器人实时上报的工作状态,生产调度信息,该调度信息通过调度主题消息中间件发送给群众软件机器人,群众软件机器人根据调度信息执行各自的任务,并实时向领袖软件机器人上报工作状态和任务结果;
步骤4:循环执行步骤3,直至完成客户端的事务请求。
12.根据权利要求11所述的资源调度管理方法,其特征在于:所述步骤3还包括:当领袖软件机器人收到群众软件机器人上报的工作状态和任务结果后,向群众软件机器人发送回报信息确认,若在规定时间内超过半数的群众软件机器人没有收到回报信息,则执行步骤2重新选举领袖。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911420275.XA CN111064672A (zh) | 2019-12-31 | 2019-12-31 | 云平台通信系统、选举方法及资源调度管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911420275.XA CN111064672A (zh) | 2019-12-31 | 2019-12-31 | 云平台通信系统、选举方法及资源调度管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111064672A true CN111064672A (zh) | 2020-04-24 |
Family
ID=70305887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911420275.XA Withdrawn CN111064672A (zh) | 2019-12-31 | 2019-12-31 | 云平台通信系统、选举方法及资源调度管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064672A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447096A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种基于云平台通信系统的选举方法及选举系统 |
CN111447097A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种云平台资源调度管理方法及系统 |
CN111541759A (zh) * | 2020-04-20 | 2020-08-14 | 国网甘肃省电力公司信息通信公司 | 一种云平台通信系统及其通信方法 |
CN113542415A (zh) * | 2021-07-16 | 2021-10-22 | 哈尔滨工业大学 | 基于可配置订阅链的异构数据资源调度系统及方法 |
CN115174677A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 基于分布式消息的信创终端管理方法、装置和系统 |
-
2019
- 2019-12-31 CN CN201911420275.XA patent/CN111064672A/zh not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447096A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种基于云平台通信系统的选举方法及选举系统 |
CN111447097A (zh) * | 2020-04-20 | 2020-07-24 | 国网甘肃省电力公司信息通信公司 | 一种云平台资源调度管理方法及系统 |
CN111541759A (zh) * | 2020-04-20 | 2020-08-14 | 国网甘肃省电力公司信息通信公司 | 一种云平台通信系统及其通信方法 |
CN113542415A (zh) * | 2021-07-16 | 2021-10-22 | 哈尔滨工业大学 | 基于可配置订阅链的异构数据资源调度系统及方法 |
CN113542415B (zh) * | 2021-07-16 | 2022-05-24 | 哈尔滨工业大学 | 基于可配置订阅链的异构数据资源调度系统及方法 |
CN115174677A (zh) * | 2022-07-19 | 2022-10-11 | 中国工商银行股份有限公司 | 基于分布式消息的信创终端管理方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064672A (zh) | 云平台通信系统、选举方法及资源调度管理方法 | |
CN109343939B (zh) | 一种分布式集群及并行计算任务调度方法 | |
CN111447097A (zh) | 一种云平台资源调度管理方法及系统 | |
CN111447096A (zh) | 一种基于云平台通信系统的选举方法及选举系统 | |
CN107959705B (zh) | 流式计算任务的分配方法和控制服务器 | |
US10177994B2 (en) | Fault tolerant federation of computing clusters | |
CN109412874B (zh) | 设备资源的配置方法、装置、服务器及存储介质 | |
CN109857558A (zh) | 一种数据流处理方法及系统 | |
CN107453929B (zh) | 集群系统自构建方法、装置及集群系统 | |
CN109347974B (zh) | 提高在线服务质量和集群资源利用率的混合调度系统 | |
CN113569987A (zh) | 模型训练方法和装置 | |
CN110855737B (zh) | 一种一致性级别可控的自适应数据同步方法和系统 | |
CN112437129B (zh) | 集群的管理方法及集群的管理装置 | |
CN115115329A (zh) | 一种面向智能生产线的制造中间件及云制造架构 | |
CN106230914A (zh) | 一种基于订阅信息发布的电子白板数据共享系统 | |
US20100262871A1 (en) | Method for implementing highly available data parallel operations on a computational grid | |
CN110798339A (zh) | 一种基于分布式任务调度框架的任务容灾方法 | |
CN104951346B (zh) | 一种用于嵌入式系统的进程管理方法及系统 | |
CN114138568A (zh) | Redis哨兵模式下客户端故障转移的调度方法及系统 | |
CN104484228A (zh) | 基于Intelli-DSC的分布式并行任务处理系统 | |
CN111541759A (zh) | 一种云平台通信系统及其通信方法 | |
CN116089079A (zh) | 一种基于大数据的计算机资源分配管理系统及方法 | |
CN107005434A (zh) | 一种同步虚拟网络功能vnf状态的方法、装置和设备 | |
CN111966469B (zh) | 一种集群虚拟机高可用方法及系统 | |
CN112054926B (zh) | 集群管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200424 |
|
WW01 | Invention patent application withdrawn after publication |