【技术实现步骤摘要】
有状态服务的迁移方法、装置、计算机设备及存储介质
本申请涉及互联网
,特别涉及一种有状态服务的迁移方法、装置、计算机设备及存储介质。
技术介绍
有状态服务是在运行过程中依赖服务状态的服务,即运行服务时需要依靠上下文。有状态服务无法由多个服务节点同时运行,通常只由1个服务节点来运行。在服务器运行并且对外提供服务的过程中,可能会因为服务器扩缩容、物理机宕机或者虚拟机宕机等情况,导致服务需要从一个服务节点迁移到另一个服务节点。相关技术中的服务节点采用中心部署形式,也即服务系统包括一个中心仲裁节点和下属的多个服务节点。各个服务节点定期向中心仲裁节点上报服务信息,服务信息用于指示正在该服务节点上运行的服务。中心仲裁节点根据全局的服务信息确定有状态服务在迁移后所在的服务节点。但在各个服务节点向中心仲裁节点上报服务信息的过程中,存在有状态服务在多点运行而导致数据冲突的情况。例如,有状态服务S原先在服务节点X上运行;新增服务节点Y在收到服务调用方发送的服务请求后,开始运行S;而服务节点X在未收到中心仲裁节点作出服务迁移仲裁之前,保持S的运行。此时,S同时在服务节点X和服务节点Y上运行,并且服务节点X和服务节点Y上运行的S可能出现数据不一致的情况。如何避免有状态服务在多点运行,是需要解决的问题。
技术实现思路
本申请实施例提供了一种有状态服务的迁移方法、装置、计算机设备及存储介质,使得分布式服务调度架构中的服务节点能够唯一确定有状态服务迁移后的服务节点并进行有状态服务的迁移,保证有状态服务的正 ...
【技术保护点】
1.一种有状态服务的迁移方法,其特征在于,由采用分布式部署的多个服务节点中的第一服务节点执行,所述方法包括:/n接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;/n在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;/n在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;/n向所述服务调用方发送所述服务请求的响应。/n
【技术特征摘要】
1.一种有状态服务的迁移方法,其特征在于,由采用分布式部署的多个服务节点中的第一服务节点执行,所述方法包括:
接收服务调用方发送的服务请求,所述服务请求用于调用所述有状态服务,所述服务请求为所述服务调用方通过路由策略确定出所述第一服务节点后发送的;
在所述第一服务节点上不存在所述有状态服务的情况下,获取第二服务节点的信息,所述第二服务节点为所述有状态服务当前所在的服务节点;
在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,所述单点服务迁移条件用于确定所述有状态服务在迁移后的唯一服务节点为所述第一服务节点;
向所述服务调用方发送所述服务请求的响应。
2.根据权利要求1所述的方法,其特征在于,所述在满足单点服务迁移条件的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
根据所述路由策略确定第三服务节点,所述第三服务节点为根据所述路由策略确定的用于唯一提供所述有状态服务的服务节点;
在所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点。
3.根据权利要求2所述的方法,其特征在于,所述根据路由策略确定第三服务节点,包括:
将所述有状态服务的键数据通过一致性哈希算法计算得到第一虚拟键标号,所述键数据用于唯一标识所述有状态服务,所述虚拟键标号为所述有状态服务映射到哈希环上的虚拟标号,所述哈希环为经过一致性哈希计算后对应的环形空间;
将所述哈希环上与所述虚拟键标号距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点,所述虚拟节点标号为所述服务节点映射到哈希环上的虚拟标号。
4.根据权利要求3所述的方法,其特征在于,所述将所述哈希环上与所述虚拟键标号距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点,包括:
将所述哈希环上与所述虚拟键标号在所述哈希环的顺时针方向上距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点;
或,
将所述哈希环上与所述虚拟键标号在所述哈希环的逆时针方向上距离最近的虚拟节点标号对应的服务节点确定为所述第三服务节点;
或,
将所述哈希环上与所述虚拟键标号差值最小的虚拟节点标号对应的服务节点确定为所述第三服务节点。
5.根据权利要求2至4任一所述的方法,其特征在于,所述在所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
在所述第一服务节点与所述第二服务节点不是同一个服务节点,且所述第一服务节点与所述第三服务节点是同一个服务节点的情况下,将所述有状态服务从所述第二服务节点迁移至所述第一服务节点。
6.根据权利要求2至4任一所述的方法,其特征在于,所述将所述有状态服务从所述第二服务节点迁移至所述第一服务节点,包括:
获取所述有状态服务的服务状态;
通过所述服务状态在所述第一服务节点上生成所述有状态服务。
7.根据权利要求6所述的方法,其特征在于,所述获取所述有状态服务的服务状态,包括:
从共享存储空间获取所述有状态服务的第一服务状态,所述共享存储空间用于存储所...
【专利技术属性】
技术研发人员:吕骁博,
申请(专利权)人:腾讯科技成都有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。