有状态服务的迁移方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:29672435 阅读:17 留言:0更新日期:2021-08-13 21:53
本申请公开了一种有状态服务的迁移方法、装置、计算机设备及存储介质,涉及互联网技术领域。所述方法包括:接收服务调用方发送的服务请求,服务请求用于调用有状态服务,服务请求为服务调用方通过路由策略确定出第一服务节点后发送的;在第一服务节点上不存在有状态服务的情况下,获取第二服务节点的信息,第二服务节点为有状态服务当前所在的服务节点;在满足单点服务迁移条件的情况下,将有状态服务从第二服务节点迁移至第一服务节点,单点服务迁移条件用于确定有状态服务在迁移后的唯一服务节点为第一服务节点;向服务调用方发送服务请求的响应。本申请提供了一种针对分布式服务调度架构的高效的有状态服务的迁移方法。

【技术实现步骤摘要】
有状态服务的迁移方法、装置、计算机设备及存储介质
本申请涉及互联网
,特别涉及一种有状态服务的迁移方法、装置、计算机设备及存储介质。
技术介绍
有状态服务是在运行过程中依赖服务状态的服务,即运行服务时需要依靠上下文。有状态服务无法由多个服务节点同时运行,通常只由1个服务节点来运行。在服务器运行并且对外提供服务的过程中,可能会因为服务器扩缩容、物理机宕机或者虚拟机宕机等情况,导致服务需要从一个服务节点迁移到另一个服务节点。相关技术中的服务节点采用中心部署形式,也即服务系统包括一个中心仲裁节点和下属的多个服务节点。各个服务节点定期向中心仲裁节点上报服务信息,服务信息用于指示正在该服务节点上运行的服务。中心仲裁节点根据全局的服务信息确定有状态服务在迁移后所在的服务节点。但在各个服务节点向中心仲裁节点上报服务信息的过程中,存在有状态服务在多点运行而导致数据冲突的情况。例如,有状态服务S原先在服务节点X上运行;新增服务节点Y在收到服务调用方发送的服务请求后,开始运行S;而服务节点X在未收到中心仲裁节点作出服务迁移仲裁之前,保持S的运行。此时,S同时在服务节点X和服务节点Y上运行,并且服务节点X和服务节点Y上运行的S可能出现数据不一致的情况。如何避免有状态服务在多点运行,是需要解决的问题。
技术实现思路
本申请实施例提供了一种有状态服务的迁移方法、装置、计算机设备及存储介质,使得分布式服务调度架构中的服务节点能够唯一确定有状态服务迁移后的服务节点并进行有状态服务的迁移,保证有状态服务的正常运行。所述技术方案如下:根据本申请的一个方面,提供了一种有状态服务的迁移方法,所述方法包括:接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;向所述服务调用方发送所述服务请求的响应。根据本申请的另一方面,提供了一种有状态服务的迁移装置,所述装置包括:接收模块,用于接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;获取模块,用于在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;迁移模块,用于在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;发送模块,用于向所述服务调用方发送所述服务请求的响应。根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请各个方面提供的有状态服务的迁移方法。根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机指令,所述计算机指令由处理器加载并执行以实现如本申请各个方面提供的有状态服务的迁移方法。根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述有状态服务的迁移方法。本申请实施例至少包括如下有益效果:在接收到服务调用方发送的服务请求后,通过获取有状态服务当前所在的第二服务节点信息判断本服务节点是否为有状态服务原本即所在的服务节点;在满足单点服务迁移条件的情况下,即,确定了有状态服务在迁移后的唯一服务节点为本服务节点,进行有状态服务的迁移,将有状态服务从第二服务节点迁移至第一服务节点,提供了一种在分布式服务调度架构中保证有状态服务在单点运行的有状态服务的迁移方法,避免了有状态服务在多点运行而导致的数据冲突。附图说明为了更清楚地介绍本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本申请一个示例性实施例提供的一种一致性哈希算法的示意图;图2是本申请一个示例性实施例提供的一种有状态服务的迁移方法的应用场景示意图;图3是本申请一个示例性实施例提供的一种分布式服务调度架构框架的示意图;图4是本申请一个示例性实施例提供的一种有状态服务的迁移方法的流程示意图;图5是本申请一个示例性实施例提供的一种有状态服务的迁移方法的流程示意图;图6是本申请一个示例性实施例提供的一种有状态服务的迁移方法的流程示意图;图7是本申请一个示例性实施例提供的一种有状态服务的迁移装置的结构框图;图8是本申请一个示例性实施例提供的计算机设备的框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。为了本申请实施例所示方案易于理解,下面对本申请实施例中出现的名词进行介绍。服务:服务器在运行过程中的某类功能,对外提供服务接口,服务内容包括逻辑功能、数据处理等。服务作为一个相对独立的功能模块,服务实体可以是独立运行的进程、线程、轻量级协程或者其中的部分代码逻辑。一种服务可以对应多个服务实体。以游戏服务器为例,游戏服务器可以提供的服务有排本文档来自技高网...

【技术保护点】
1.一种有状态服务的迁移方法,其特征在于,由采用分布式部署的多个服务节点中的第一服务节点执行,所述方法包括:/n接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;/n在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;/n在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;/n向所述服务调用方发送所述服务请求的响应。/n

【技术特征摘要】
1.一种有状态服务的迁移方法,其特征在于,由采用分布式部署的多个服务节点中的第一服务节点执行,所述方法包括:
接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;
在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;
在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;
向所述服务调用方发送所述服务请求的响应。


2.根据权利要求1所述的方法,其特征在于,所述在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
根据所述路由策略确定第三服务节点,所述第三服务节点为根据所述路由策略确定的用于唯一提供所述有状态服务的服务节点;
在所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点。


3.根据权利要求2所述的方法,其特征在于,所述根据路由策略确定第三服务节点,包括:
将所述有状态服务的键数据通过一致性哈希算法计算得到第一虚拟键标号,所述键数据用于唯一标识所述有状态服务,所述虚拟键标号为所述有状态服务映射到哈希环上的虚拟标号,所述哈希环为经过一致性哈希计算后对应的环形空间;
将所述哈希环上与所述虚拟键标号距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点,所述虚拟节点标号为所述服务节点映射到哈希环上的虚拟标号。


4.根据权利要求3所述的方法,其特征在于,所述将所述哈希环上与所述虚拟键标号距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点,包括:
将所述哈希环上与所述虚拟键标号在所述哈希环的顺时针方向上距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点;
或,
将所述哈希环上与所述虚拟键标号在所述哈希环的逆时针方向上距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点;
或,
将所述哈希环上与所述虚拟键标号差值最小的虚拟节点标号对应的服务节点确定为所述第三服务节点。


5.根据权利要求2至4任一所述的方法,其特征在于,所述在所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
在所述第一服务节点与所述第二服务节点不是同一个服务节点,且所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点。


6.根据权利要求2至4任一所述的方法,其特征在于,所述将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
获取所述有状态服务的服务状态;
通过所述服务状态在所述第一服务节点上生成所述有状态服务。


7.根据权利要求6所述的方法,其特征在于,所述获取所述有状态服务的服务状态,包括:
从共享存储空间获取所述有状态服务的第一服务状态,所述共享存储空间用于存储所...

【专利技术属性】
技术研发人员:吕骁博
申请(专利权)人:腾讯科技成都有限公司
类型:发明
国别省市:四川;51

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

1