[发明专利]一种分布式服务的实现方法、服务代理装置及分布式系统有效
申请号: | 201310542799.2 | 申请日: | 2013-11-05 |
公开(公告)号: | CN104618414B | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | 陆小亮;胡凌云;谢东凯 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 服务 实现 方法 代理 装置 系统 | ||
技术领域
本申请涉及计算机技术领域,具体涉及一种分布式服务的实现方法、服务代理装置及分布式系统。
背景技术
随着计算机技术的发展,可以将很多计算机组合成为一个分布式系统,通过分布式系统为用户提供更好的服务。目前,分布式系统对外提供的服务有二类,一类是服务节点物理上有状态的,即某类服务请求会被分配到固定的物理计算机进行处理,另一类是服务节点物理上无状态,即某类服务请求会被随机分配到不同的物理机器进行处理。
然而,服务节点物理上有状态这类服务,一旦为某类服务请求服务的固定的物理计算机出现故障,进行物理上的更换或修复耗时较长,会影响某类服务请求的实现。服务节点物理上无状态这类服务,会因系统抖动等原因导致某类服务请求被多台计算机重复处理,当该某类服务请求有写数据操作时,可能会造成数据不一致或写坏数据。
发明内容
本申请所要解决的技术问题在于提供一种分布式服务的实现方法、服务代理装置及分布式系统,通过根据服务请求信息中携带的用户端标识码,获取与该服务请求信息对应的逻辑服务节点的信息,根据与逻辑服务节点对应的物理服务节点的物理地址,查询得到物理服务节点,通过逻辑服务节点实现了物理服务节点与服务请求的解耦,使服务请求与逻辑服务节点之间是有状态的,服务请求会被分发到固定的逻辑服务节点,逻辑服务节点与物理服务节点之间是无状态的,物理服务节点可以灵活快速变更,当某服务请求的物理服务节点出现故障时,可以灵活快速地变更为其他物理服务节点,不会影响某服务请求的实现;同时查询得到的物理服务节点在确定其自身的通用唯一识别码,以及与逻辑服务节点对应的物理服务节点的通用唯一识别码二者一致后,才执行与该服务请求对应的服务,通过通用唯一识别码有效性的验证,避免某服务请求被多个物理服务节点重复处理,保证写的串行化。
为了解决上述问题,本申请公开了一种分布式服务的实现方法,包括:接收用户端的服务请求信息,其中,所述服务请求信息中携带有用户端标识码;根据所述用户端标识码获取与所述服务请求信息对应的逻辑服务节点,并进一步获取所述逻辑服务节点的信息;其中,所述逻辑服务节点的信息包括与所述逻辑服务节点对应的物理服务节点的物理地址以及与所述逻辑服务节点对应的物理服务节点的通用唯一识别码;根据所述物理地址查询得到一物理服务节点,将所述服务请求信息以及所述通用唯一识别码发送至查询得到的物理服务节点;在确定所述查询得到的物理服务节点自身的通用唯一识别码与所述逻辑服务节点对应的物理服务节点的通用唯一识别码二者一致后,执行与所述服务请求信息对应的服务。
进一步地,接收用户端的服务请求信息之前,所述方法还包括:根据预设的总的逻辑服务节点的个数和预设的每个逻辑服务节点的名称,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点;其中,总的物理服务节点的个数大于总的逻辑服务节点的个数;根据每个逻辑服务节点及其对应的物理服务节点,建立节点信息列表,其中,所述节点信息列表中包括每个逻辑服务节点的信息;将所述节点信息列表中每个逻辑服务节点的信息,分别发送至与每个逻辑服务节点对应的物理服务节点。
进一步地,建立节点信息列表之后,所述方法还包括:获取所述节点信息列表;根据所述节点信息列表中包括的每个逻辑服务节点的信息,建立与每个逻辑服务节点对应的槽;其中,每个槽的名称与其对应的逻辑服务节点的名称相同,总的槽的个数与总的逻辑服务节点的个数相同;将每个逻辑服务节点的信息分别存储到与每个逻辑服务节点对应的槽中。
进一步地,将每个逻辑服务节点的信息分别存储到与每个逻辑服务节点对应的槽中之后,所述方法还包括:当所述节点信息列表变更后,更新槽和/或槽中存储的逻辑服务节点的信息。
进一步地,当逻辑服务节点的名称为顺序号,槽的名称为顺序号时,根据所述用户端标识码获取与所述服务请求信息对应的逻辑服务节点,并进一步获取所述逻辑服务节点的信息,包括:利用预设的哈希函数对所述用户端标识码进行哈希运算,得到哈希值;将所述哈希值对总的槽的个数的取模运算结果,作为槽的顺序号,所述槽的顺序号对应的槽中存储的逻辑服务节点的信息为与所述服务请求信息对应的逻辑服务节点的信息;从所述槽的顺序号对应的槽中,读取得到与所述服务请求信息对应的逻辑服务节点的信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310542799.2/2.html,转载请声明来源钻瓜专利网。