一种服务器、分布式服务器集群及其状态驱动方法技术

技术编号:20025201 阅读:27 留言:0更新日期:2019-01-06 04:16
本说明书实施例公开了一种服务器、分布式服务器集群及其状态驱动方法,利用了本地对象的状态变化来触发关联的集群对象的状态变化,以及根据分布式服务器集群的变化信息将变化信息更新到本地对象并触发本地回调,保证了本地事件状态和集群事件状态的强一致性,实现了本地回调,并且,由于通过状态驱动的方式来驱动节点本地状态和集群状态发生变化,简化了代码的开发,提升了代码的可读性。

【技术实现步骤摘要】
一种服务器、分布式服务器集群及其状态驱动方法
本申请涉及数据库领域,尤其涉及一种服务器、分布式服务器集群及其状态驱动方法。
技术介绍
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,在各个领域都得到了广泛的应用。随着科学技术的发展,数据库的方式也由集中式数据库发展为分布式数据库,但是,在分布式数据库中,客户端和服务端通过长链接进行注册,长链接是指基于套接字(Socket)的链接,其中,控制台通过短链接向服务端发送控制命令给客户端,短链接是指基于会话对象(Session)的链接,控制台有多个,服务端是一个集群,客户端也是一个集群,因此,如何把控制命令发送给指定的客户端并实现强一致和容错,并把客户端应答返回给发送的控制台,这需要更可靠的分布式服务器集群。
技术实现思路
本专利技术了提供了一种服务器、分布式服务器集群及其状态驱动方法。第一方面,本说明书实施例提供了一种分布式服务器集群的状态驱动方法,包括:基于分布式服务器集群的一节点中本地对象的当前状态执行处理逻辑;在所述处理逻辑被执行完成后,触发与所述本地对象关联的集群对象的状态变化;以及所述节点获取所述分布式服务器集群的变化信息,并将所述变化信息同步到所述节点的本地对象;利用所述本地对象的状态变化触发所述节点的本地回调,以更新所述节点的状态。第二方面,本说明书实施例提供了一种分布式服务器集群的状态驱动装置,包括:执行单元,用于基于分布式服务器集群的一节点中本地对象的当前状态执行对应的处理逻辑;触发单元,用于在所述处理逻辑被执行完成后,触发与所述本地对象关联的集群对象的状态变化;同步单元,用于获取所述分布式服务器集群的变化信息,并将所述变化信息同步到所述节点的本地对象;回调单元,用于利用所述本地对象的状态变化触发所述节点的本地回调,以更新所述节点的状态。第三方面,本说明书实施例提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面任一项所述方法的步骤。第四方面,本说明书实施例提供了一种分布式服务器集群,包括多第二方面所述的服务器。第五方面,说明书实施例提供了分布式系统,包括客户端、控制台和如第四方面所述的分布式服务器集群。第六方面,本说明书实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面任一项所述方法的步骤。本说明书实施例有益效果如下:由于利用了本地对象的状态变化来触发关联的集群对象的状态变化,以及根据分布式服务器集群的变化信息将变化信息更新到本地对象并触发本地回调,所以保证了本地事件状态和集群事件状态的强一致性,实现了本地回调,并且,由于通过状态驱动的方式来驱动节点状态和集群状态发生变化,简化了代码的开发,提升了代码的可读性。附图说明图1为本说明书实施例提供的分布式服务器集群的使用场景图;图2为本说明书实施例提供的分布式服务器集群的状态驱动方法的流程图;图3A示出了本说明书实施例提供的ZooKeeper的节点目录结构,图3B示出了本说明书实施例提供的ZooKeeper中SERVER节点的初始化过程,图3C示出了本说明书实施例提供的ZooKeeper中Leader节点的失效的处理过程;图3D示出了本说明书实施例提供的ZooKeeper中Worker节点的失效的处理过程;图4为本说明书实施例提供的分布式服务器集群的状态驱动装置的模块图;图5为本说明书实施例提供的服务器的结构示意图。具体实施方式为了更好的理解上述技术方案,下面通过附图以及具体实施例对本说明书实施例的技术方案做详细的说明,应当理解本说明书实施例以及实施例中的具体特征是对本说明书实施例技术方案的详细的说明,而不是对本说明书技术方案的限定,在不冲突的情况下,本说明书实施例以及实施例中的技术特征可以相互组合。请参考图1,图1为本说明书实施例提供的分布式服务器集群的使用场景图,如图1所示,从物理层面来说,分布式服务器集群10可以包括多个服务器101,从虚拟层面来说,分布式服务器集群10包括多个节点101,其中节点指的是某个独立的Server进程,可以用IP+端口来区分,节点可以部署在一台或者多台服务器上,一般来说一台物理服务器独立部署一个节点,以实现高可用,图1中的101可以是服务器,也可以是节点,在此不做限制。请继续参考图1,客户端11与分布式服务器集群10之间的通信方式为基于Socket的长链接,控制台12与分布式服务器集群10之间的通信方式为基于Session的短链接。本说明书实施例提供的分布式服务器集群的状态驱动方法即基于图1所示的服务器集群的系统架构,请参考图2,图2为本说明书实施例提供的分布式服务器集群的状态驱动方法的流程图,如图2所示,该方法包括:S1:基于分布式服务器集群的一节点中本地对象的当前状态,执行对应的处理逻辑;其中,节点中本地对象可以是需要和分布式服务器集群中集群对象保持一致的数据单元,例如,某一节点中本地对象为一Session,该Session的状态可以为生命周期终止、过期、初始化、提交到集群、被消费、驱动回应或已应答给客户端中的任一个状态,设定该Session的状态例为被消费,则可以基于该Session的状态执行对应的处理逻辑,则该Session的状态会变化为驱动回应;相应地,分布式服务器集群中也保存有与该Session关联的对象,也即集群对象;S3:在处理逻辑被执行完成后,触发与本地对象关联的集群对象的状态变化;例如,该节点中Session的状态变化为驱动回应之后,则能够被分布式服务器集群通过集群监听器等方式检测到,从而即能够触发分布式服务器集群中与与该Session关联的集群对象的状态变化,沿用前面的具体例子,分布式服务器集群中与该Session关联的集群对象的状态就由“被消费”变为了“驱动回应。”这样,保证了节点和分布式服务器集群之间的数据强一致性,也即保证了本地事件状态和集群事件状态的强一致性;以及S5:节点获取分布式服务器集群的变化信息,并将变化信息同步到节点的本地对象;例如,分布式服务器集群中其他节点发生了状态变化,例如其他节点中某一个变为不可用等等,则该节点可以通过分布式服务器集群的集群监听器等方式,获取分布式服务器集群的变化信息,这样即能够根据该变化信息并将变化信息同步到节点的本地对象中,例如在该节点中,节点目录作为该节点的本地对象之一,可以用于记录分布式服务器集群的节点状态变化情况,因此可以将变化信息同步到节点中的节点目录中,这样,该节点就不会向该已经变为不可用状态的节点发送信息;S7:利用本地对象的状态变化触发节点的本地回调,以更新节点的状态,具体来讲,由于S5中本地对象已经发生了状态变化,所以可以利用该状态编号来触发节点的本地回调,从而更新该节点的状态,沿用前面的例子,此时更新的节点状态具体是:其他节点中某一个为不可用(即S5中获知的信息);在实际应用中,节点的状态是指该节点在集群中的状态,例如节点本身是否可用,该节点具体是什么类型的节点,该节点中有哪些本地对象,这些本地对象的状态是什么等等。这样,保证了节点和分布式服务器集群之间的数据强一致性,也即集群事件状态和本地事件状态的强一致性。需要说明的是,上述对本说明书特定本文档来自技高网...

【技术保护点】
1.一种分布式服务器集群的状态驱动方法,包括:基于分布式服务器集群的一节点中本地对象的当前状态,执行对应的处理逻辑;在所述处理逻辑被执行完成后,触发与所述本地对象关联的集群对象的状态变化;以及所述节点获取所述分布式服务器集群的变化信息,并将所述变化信息同步到所述节点的本地对象;利用所述本地对象的状态变化触发所述节点的本地回调,以更新所述节点的状态。

【技术特征摘要】
1.一种分布式服务器集群的状态驱动方法,包括:基于分布式服务器集群的一节点中本地对象的当前状态,执行对应的处理逻辑;在所述处理逻辑被执行完成后,触发与所述本地对象关联的集群对象的状态变化;以及所述节点获取所述分布式服务器集群的变化信息,并将所述变化信息同步到所述节点的本地对象;利用所述本地对象的状态变化触发所述节点的本地回调,以更新所述节点的状态。2.如权利要求1所述的方法,所述集群对象为所述本地对象的反序列化对象。3.如权利要求1所述的方法,所述节点在确定所述本地对象的状态终止时,回收所述本地对象,并触发所述分布式服务器集群回收所述集群对象。4.如权利要求3所述的方法,所述当前状态为生命周期终止、过期、初始化、提交到集群、被消费、驱动回应或已应答给客户端。5.如权利要求4所述的方法,所述当前状态从初始化、提交到集群、被消费、驱动回应到已应答给客户端之间顺次单步变化;所述当前状态在为生命周期终止或过期中的任一个状态时,所述节点确定所述本地对象的状态终止。6.如权利要求1所述的方法,所述方法还包括:若所述节点接收到生产者的重发消息,则根据所述重发消息的状态,并且基于确定后的所述重发消息的状态,进行相应的处理。7.一种分布式服务器集群的状态驱动装置,包括:执行单元,用于基于分布式服务器集群的一节点中本地对象的当前状态,执行对应的处理逻辑;触发单元,用于在所述处理逻辑被执行完成后,触发与所述本地对象关联的集群对象的状态变化;同步单元,用于获取所述分布式服务器集群的变化...

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

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

1