一种分布式服务的实现方法、服务代理装置及分布式系统的制作方法

文档序号:8301708阅读:291来源:国知局
一种分布式服务的实现方法、服务代理装置及分布式系统的制作方法
【技术领域】
[0001]本申请涉及计算机技术领域,具体涉及一种分布式服务的实现方法、服务代理装置及分布式系统。
【背景技术】
[0002]随着计算机技术的发展,可以将很多计算机组合成为一个分布式系统,通过分布式系统为用户提供更好的服务。目前,分布式系统对外提供的服务有二类,一类是服务节点物理上有状态的,即某类服务请求会被分配到固定的物理计算机进行处理,另一类是服务节点物理上无状态,即某类服务请求会被随机分配到不同的物理机器进行处理。
[0003]然而,服务节点物理上有状态这类服务,一旦为某类服务请求服务的固定的物理计算机出现故障,进行物理上的更换或修复耗时较长,会影响某类服务请求的实现。服务节点物理上无状态这类服务,会因系统抖动等原因导致某类服务请求被多台计算机重复处理,当该某类服务请求有写数据操作时,可能会造成数据不一致或写坏数据。

【发明内容】

[0004]本申请所要解决的技术问题在于提供一种分布式服务的实现方法、服务代理装置及分布式系统,通过根据服务请求信息中携带的用户端标识码,获取与该服务请求信息对应的逻辑服务节点的信息,根据与逻辑服务节点对应的物理服务节点的物理地址,查询得到物理服务节点,通过逻辑服务节点实现了物理服务节点与服务请求的解耦,使服务请求与逻辑服务节点之间是有状态的,服务请求会被分发到固定的逻辑服务节点,逻辑服务节点与物理服务节点之间是无状态的,物理服务节点可以灵活快速变更,当某服务请求的物理服务节点出现故障时,可以灵活快速地变更为其他物理服务节点,不会影响某服务请求的实现;同时查询得到的物理服务节点在确定其自身的通用唯一识别码,以及与逻辑服务节点对应的物理服务节点的通用唯一识别码二者一致后,才执行与该服务请求对应的服务,通过通用唯一识别码有效性的验证,避免某服务请求被多个物理服务节点重复处理,保证与的串行化。
[0005]为了解决上述问题,本申请公开了一种分布式服务的实现方法,包括:接收用户端的服务请求信息,其中,所述服务请求信息中携带有用户端标识码;根据所述用户端标识码获取与所述服务请求信息对应的逻辑服务节点,并进一步获取所述逻辑服务节点的信息;其中,所述逻辑服务节点的信息包括与所述逻辑服务节点对应的物理服务节点的物理地址以及与所述逻辑服务节点对应的物理服务节点的通用唯一识别码;根据所述物理地址查询得到一物理服务节点,将所述服务请求信息以及所述通用唯一识别码发送至查询得到的物理服务节点;在确定所述查询得到的物理服务节点自身的通用唯一识别码与所述逻辑服务节点对应的物理服务节点的通用唯一识别码二者一致后,执行与所述服务请求信息对应的服务。
[0006]进一步地,接收用户端的服务请求信息之前,所述方法还包括:根据预设的总的逻辑服务节点的个数和预设的每个逻辑服务节点的名称,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点;其中,总的物理服务节点的个数大于总的逻辑服务节点的个数;根据每个逻辑服务节点及其对应的物理服务节点,建立节点信息列表,其中,所述节点信息列表中包括每个逻辑服务节点的信息;将所述节点信息列表中每个逻辑服务节点的信息,分别发送至与每个逻辑服务节点对应的物理服务节点。
[0007]进一步地,建立节点信息列表之后,所述方法还包括:获取所述节点信息列表;根据所述节点信息列表中包括的每个逻辑服务节点的信息,建立与每个逻辑服务节点对应的槽;其中,每个槽的名称与其对应的逻辑服务节点的名称相同,总的槽的个数与总的逻辑服务节点的个数相同;将每个逻辑服务节点的信息分别存储到与每个逻辑服务节点对应的槽中。
[0008]进一步地,将每个逻辑服务节点的信息分别存储到与每个逻辑服务节点对应的槽中之后,所述方法还包括:当所述节点信息列表变更后,更新槽和/或槽中存储的逻辑服务节点的信息。
[0009]进一步地,当逻辑服务节点的名称为顺序号,槽的名称为顺序号时,根据所述用户端标识码获取与所述服务请求信息对应的逻辑服务节点,并进一步获取所述逻辑服务节点的信息,包括:利用预设的哈希函数对所述用户端标识码进行哈希运算,得到哈希值;将所述哈希值对总的槽的个数的取模运算结果,作为槽的顺序号,所述槽的顺序号对应的槽中存储的逻辑服务节点的信息为与所述服务请求信息对应的逻辑服务节点的信息;从所述槽的顺序号对应的槽中,读取得到与所述服务请求信息对应的逻辑服务节点的信息。
[0010]进一步地,根据预设的总的逻辑服务节点的个数和预设的每个逻辑服务节点的名称,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点,包括:根据预设的总的逻辑服务节点的个数,从总的物理服务节点中选取物理服务节点进行启动;其中,选取并启动的物理服务节点的个数与预设的总的逻辑服务节点的个数相同;将预设的每个逻辑服务节点的名称,一一对应分配给选取并启动的物理服务节点中的每个物理服务节点,得到与每个逻辑服务节点对应的物理服务节点;或,根据预设的总的逻辑服务节点的个数和预设的每个逻辑服务节点的名称,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点,包括:根据预设的总的逻辑服务节点的个数,从总的物理服务节点中选取物理服务节点进行启动,使得选取并启动的物理服务节点向本地发送节点名称获取信息;其中,选取并启动的物理服务节点的个数与预设的总的逻辑服务节点的个数相同;接收所述节点名称获取信息,并根据所述节点名称获取信息,将预设的每个逻辑服务节点的名称,一一对应分配给选取并启动的物理服务节点中的每个物理服务节点,得到与每个逻辑服务节点对应的物理服务节点。
[0011]进一步地,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点之后还包括:监测与每个逻辑服务节点对应的物理服务节点的状态;根据与某个逻辑服务节点对应的物理服务节点的状态,确定是否更换与所述某个逻辑服务节点对应的物理服务节点;如果确定更换与所述某个逻辑服务节点对应的物理服务节点,则从剩余的没有对应逻辑服务节点的物理服务节点中选取一物理服务节点,用选取的物理服务节点替换与所述某个逻辑服务节点对应的物理服务节点。
[0012]进一步地,从剩余的没有对应逻辑服务节点的物理服务节点中选取一物理服务节点,用选取的物理服务节点替换与所述某个逻辑服务节点对应的物理服务节点之后,还包括:对所述节点信息列表中所述某个逻辑服务节点的信息进行更新。
[0013]进一步地,对所述节点信息列表中所述某个逻辑服务节点的信息进行更新之后,还包括:将更新后的所述某个逻辑服务节点的信息发送至与所述某个逻辑服务节点对应的物理服务节点中。
[0014]为了解决上述问题,本申请还公开了一种服务代理装置,包括:接收单元,用于接收用户端的服务请求信息,其中,所述服务请求信息中携带有用户端标识码;第一获取单元,用于根据所述用户端标识码获取与所述服务请求信息对应的逻辑服务节点,并进一步获取所述逻辑服务节点的信息;其中,所述逻辑服务节点的信息包括与所述逻辑服务节点对应的物理服务节点的物理地址以及与所述逻辑服务节点对应的物理服务节点的通用唯一识别码;处理单元,用于根据所述物理地址查询得到一物理服务节点,将所述服务请求信息以及所述通用唯一识别码发送至查询得到的物理服务节点,以使所述查询得到的物理服务节点在确定其自身的通用唯一识别码与所述逻辑服务节点对应的物理服务节点的通用唯一识别码二者一致后,执行与所述服务请求信息对应的服务。
[0015]进一步地,还包括:第三获取单元,用于获取节点信息列表,所述节点信息列表根据每个逻辑服务节点及其对应的物理服务节点建立,所述节点信息列表中包括每个逻辑服务节点的信息;第二建立单元,用于根据所述节点信息列表中包括的每个逻辑服务节点的信息,建立与每个逻辑服务节点对应的槽;其中,每个槽的名称与其对应的逻辑服务节点的名称相同,总的槽的个数与总的逻辑服务节点的个数相同;存储单元,用于将每个逻辑服务节点的信息分别存储到与每个逻辑服务节点对应的槽中。
[0016]进一步地,还包括:第一更新单元,用于当所述节点信息列表变更后,更新槽和/或槽中存储的逻辑服务节点的信息。
[0017]进一步地,当逻辑服务节点的名称为顺序号,槽的名称为顺序号时,所述第一获取单元包括:哈希运算子单元,用于利用预设的哈希函数对所述用户端标识码进行哈希运算,得到哈希值;顺序号获取子单元,用于将所述哈希值对总的槽的个数的取模运算结果,作为槽的顺序号,所述槽的顺序号对应的槽中存储的逻辑服务节点的信息为与所述服务请求信息对应的逻辑服务节点的信息;读取子单元,用于从所述槽的顺序号对应的槽中,读取得到与所述服务请求信息对应的逻辑服务节点的信息。
[0018]为了解决上述问题,本申请还公开了一种分布式系统,包括:服务代理装置和物理服务节点集群,其中,所述服务代理装置包括:如前所述的服务代理装置;所述物理服务节点集群中包括多个物理服务节点,每个物理服务节点中部署有与所述服务请求信息对应的服务;所述多个物理服务节点中包括:查询得到的物理服务节点,用于接收所述处理单元发送的与所述逻辑服务节点对应的物理服务节点的通用唯一识别码,确定其自身的通用唯一识别码与所述逻辑服务节点对应的物理服务节点的通用唯一识别码二者是否一致,当确定二者一致后,执行与所述服务请求信息对应的服务。
[0019]进一步地,还包括:集群管理服务器;所述集群管理服务器包括:第二获取单元,用于根据预设的总的逻辑服务节点的个数和预设的每个逻辑服务节点的名称,从总的物理服务节点中获取与每个逻辑服务节点对应的物理服务节点;其中,总的物理服务节点的个数大于总的逻辑服务节点的个数;第一建立单元,用于根据每个逻辑服务节点及其对应的物理服务节点,建立节点信息列表,其中,所述节点信息列表中包括每个逻辑服务节点的信息;第一发送单元,用于将所述节点信息列表中每个逻辑服务节点的信息,分别发送至与每个逻辑服务节点对应的物理服务节点。
[0020]进一步地,所述第二获取单元包括:第一启动子单元,用于根据预设的总的逻辑服务节点的个数,从总的物理服务节点中选取物理服务节点进行启动;其中,选取并启动的物理服务节点的个数与预设的
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1