基于状态机的消息引擎动态调整方法、装置及电子设备制造方法及图纸

技术编号:18674199 阅读:36 留言:0更新日期:2018-08-14 21:30
本发明专利技术实施例提供了一种基于状态机的消息引擎动态调整方法、装置及电子设备,其中,方法包括:如果各副本节点处于异步复制状态,且各副本节点与主节点之间的数据差异小于第一阈值,则将各副本节点的复制状态从异步复制状态调整为同步复制状态;和/或,如果各副本节点处于同步复制状态,且各副本节点、主节点的写操作延展时间大于第二阈值,则将各副本节点的复制状态从同步复制状态调整为异步复制状态。本发明专利技术实施例的方案可实现动态调整消息引擎中各副本的复制状态,灵活调整系统吞吐量与高可用、高可靠性的侧重。

Dynamic adjustment method, device and electronic equipment of message engine based on state machine

The embodiment of the present invention provides a state machine-based message engine dynamic adjustment method, apparatus and electronic equipment, wherein the method includes: if each replica node is in an asynchronous replication state and the data difference between each replica node and the master node is less than the first threshold value, the replication state of each replica node is asynchronous The replication state is adjusted to synchronous replication state; and/or, if each replica node is in synchronous replication state and the write operation latency of each replica node and master node is longer than the second threshold, the replication state of each replica node is changed from synchronous replication state to asynchronous replication state. The scheme of the embodiment of the invention can dynamically adjust the replication state of each copy in the message engine, flexibly adjust the emphasis of system throughput and high availability and high reliability.

【技术实现步骤摘要】
基于状态机的消息引擎动态调整方法、装置及电子设备
本申请涉及计算机
,尤其涉及一种基于状态机的消息引擎动态调整方法、装置及电子设备。
技术介绍
吞吐量以及高可用、高可靠性是分布式消息引擎架构设计中需要考虑的两个重要因素。目前业界提出的基于多副本的高可用架构解决方案很难兼顾这两个要素使其均达到最优值。Backups、Master/Slave结构通常能达到较高的系统吞吐量,但由于很难保证消息副本的强一致性,最终导致部分节点宕机时存在丢消息的可能性、致使系统故障恢复时间延长,可用性、可靠性降低。2PC、基于Paxos的解决方案以牺牲系统吞吐量为代价来保证数据的强一致性,最终达到部分节点宕机时消息不丢、快速故障恢复的能力。以Master/Salve结构为例,其包含如下特性:1)Slave是Master的备份,可以根据消息的重要程度设置Slave的个数,即副本数。消息写请求命中Master,读请求可命中Master或者Slave。2)写请求命中Master之后,消息可通过同步或者异步的方式从Master复制到Slave上;其中,同步复制状态需要保证Master和Slave均写成功后才反馈给客户端成功;异步复制状态只需要保证Master写成功即可反馈给客户端成功。3)异步复制状态拥有较低的写延迟、较高的系统吞吐量,但只能保证消息多副本之间的最终一致性,进而导致节点宕机时出现丢消息的可能性,如在Master宕机时仍希望消息不丢失,Slave只能以只读的方式等待Master恢复,进而延长了系统故障恢复时间,降低了系统高可用性;相反,同步复制状态会以增大消息写入延迟、降低系统吞吐量的代价来保证机器宕机时数据不丢,降低系统故障恢复时间,提升消息引擎的高可用性。现有的技术缺点:通常情况下,消息引擎会通过静态配置设定主节点与多副本之间的复制状态,消息引擎运行过程中不能根据副本节点间的数据差异性、副本间消息复制的延迟等因素动态调整复制状态。这种方式下,不能灵活调整系统吞吐量与高可用、高可靠性的侧重,任意节点的宕机都会打破静态配置的复制状态,并且需要人工介入才能处理恢复至原有状态。
技术实现思路
本申请提供了一种基于状态机的消息引擎动态调整方法、装置及电子设备,以实现动态调整消息引擎中各副本的复制状态,灵活调整系统吞吐量与高可用、高可靠性的侧重。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供了一种基于状态机的消息引擎动态调整方法,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态;和/或,如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。第二方面,提供了另一种基于状态机的消息引擎动态调整方法,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态。第三方面,提供了另一种基于状态机的消息引擎动态调整方法,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。第四方面,提供了一种基于状态机的消息引擎动态调整装置,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述装置包括:异同调整模块,用于如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态;和/或,同异调整模块,用于如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。第五方面,提供了另一种基于状态机的消息引擎动态调整装置,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述装置包括:异同调整模块,用于如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态。第六方面,提供了另一种基于状态机的消息引擎动态调整装置,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述装置包括:同异调整模块,用于如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状本文档来自技高网
...

【技术保护点】
1.一种基于状态机的消息引擎动态调整方法,其特征在于,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态;和/或,如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。

【技术特征摘要】
1.一种基于状态机的消息引擎动态调整方法,其特征在于,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态;和/或,如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。2.根据权利要求1所述的方法,其特征在于,所述副本节点从所述主节点复制数据的过程还存在如下的复制状态:半同步复制状态:当前命中所述主节点的写请求被维持,各所述副本节点从主节点复制写数据,并在各所述副本节点与所述主节点上的写数据无差异后,解除所述主节点的写请求的维持状态;所述将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态包括:将各所述副本节点的复制状态从所述异步复制状态切换为所述半同步复制状态,待所述主节点的写请求的维持状态解除后,将所述副本节点的复制状态从所述半同步复制状态切换为所述同步复制状态。3.根据权利要求2所述的方法,其特征在于,所述消息引擎包括单主状态以及所述副本节点对应的所述复制状态:所述单主状态:当前消息引擎中有且仅有第一个节点启动后,以该节点作为所述主节点执行所述写请求的命令;所述方法还包括:在初始状态下,如果当前所述消息引擎中有节点启动,则将所述消息引擎从初始状态调整到所述单主状态;在所述消息引擎处于所述单主状态下,如果存在除所述第一个节点的其他节点启动后,将所述消息引擎从所述单主状态调整到所述异步复制状态。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述消息引擎处于所述异步复制状态、所述半同步复制状态以及所述单主状态中的任一状态下,如果所述主节点发生宕机,则执行报警操作。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述消息引擎处于所述异步复制状态下,如果所有所述副本节点发生宕机,则将所述消息引擎从所述异步复制状态调整为所述单主状态。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述消息引擎处于所述半同步复制状态下,如果所有所述副本节点发生宕机,则将所述消息引擎从所述半同步复制状态调整为所述单主状态。7.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述消息引擎处于所述同步复制状态下,如果所述主节点、所述副本节点中任一节点发生宕机,则从剩余未发生宕机的节点中选择一个节点作为主节点,并将所述消息引擎从所述同步复制状态调整为所述单主状态。8.一种基于状态机的消息引擎动态调整方法,其特征在于,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述异步复制状态,且各所述副本节点与所述主节点之间的数据差异小于第一阈值,则将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态。9.根据权利要求8所述的方法,其特征在于,所述副本节点从所述主节点复制数据的过程还存在如下的复制状态:半同步复制状态:当前命中所述主节点的写请求被维持,各所述副本节点从主节点复制写数据,并在各所述副本节点与所述主节点上的写数据无差异后,解除所述主节点的写请求的维持状态;所述将各所述副本节点的复制状态从所述异步复制状态调整为所述同步复制状态包括:将各所述副本节点的复制状态从所述异步复制状态切换为所述半同步复制状态,待所述主节点的写请求的维持状态解除后,将所述副本节点的复制状态从所述半同步复制状态切换为所述同步复制状态。10.一种基于状态机的消息引擎动态调整方法,其特征在于,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点完成写操作后,向客户端反馈写成功消息;同步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并在所述主节点和各所述副本节点均完成写操作后,向客户端反馈写成功消息;所述方法包括:如果各所述副本节点处于所述同步复制状态,且各所述副本节点、所述主节点的写操作延展时间大于第二阈值,则将各所述副本节点的复制状态从所述同步复制状态调整为所述异步复制状态。11.一种基于状态机的消息引擎动态调整装置,其特征在于,所述消息引擎包括一个主节点和多个副本节点,且所述副本节点从所述主节点复制数据的过程存在如下的复制状态:异步复制状态:写请求命中主节点之后,各所述副本节点从主节点复制写数据,并...

【专利技术属性】
技术研发人员:金吉祥王小瑞冯嘉
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1