分布式系统的服务调用装置及方法与流程

文档序号:35455061发布日期:2023-09-14 17:06阅读:41来源:国知局
分布式系统的服务调用装置及方法与流程

本发明实施例涉及分布式系统架构领域,具体而言,涉及一种分布式系统的服务调用装置及方法。


背景技术:

1、随着互联网技术的发展,应用系统逐渐采用分布式的架构,在分布式架构中,注册发现组件起着服务注册、服务发现、服务调用、配置中心等分布式微服务架构中核心作用,注册发现组件的高可用性对于分布式系统的稳定性有着重要的意义。

2、现有的基于zookeeper、eureka等注册中心的分布式系统,服务分别注册在其所在中心的注册中心上,整个服务调用链从开始到结束均在当前数据中心下进行,也就是说每个中心是一个相对独立的环境。中心的某个服务异常时,则将整个中心置为不可用,将该中心的交易切至备用中心或其他中心,存在资源浪费和负载分配不合理的问题。基于consul的分布式系统,原生consul支持多中心模式,但是对多中心支持有限,仅仅是部署层面的多中心,微服务获取的仍为本中心的服务列表、配置,也没有跨中心访问策略,没有充分发挥多中心的作用。

3、现有spring cloud体系微服务中,基于loadbalancer负载均衡的服务列表缓存为过期失效机制,仅在过期时间内有效,服务调用时,优先获取该负载均衡缓存,负载均衡缓存失效时则访问注册中心获取服务列表。负载均衡缓存失效时间配置较大时,存在更新不及时,调用到不可用服务的情况;负载均衡缓存失效时间配置较短时,存在与注册中心交互频繁的问题。最重要的问题是,在注册中心宕机的情况下,无降级的服务列表缓存供服务调用,即存在注册中心宕机时,服务之间无法调用的问题。且现有的分布式系统,当注册中心宕机时,服务列表停止更新,存在服务不可用,仍多次调用该服务,导致调用失败的问题。

4、综上,现有分布式系统在存在各中心独立、可用性差、应急机制考虑不全面的问题。


技术实现思路

1、本发明实施例提供了一种分布式系统的服务调用装置及方法,以至少解决相关技术中分布式系统在存在各中心独立、可用性差、应急机制考虑不全面的问题。

2、根据本发明的一个实施例,提供了一种分布式系统的服务调用装置,包括多个数据中心,每个所述数据中心包括多个注册中心、多个微服务、多个网关,其中,所述注册中心用于注册对应的所述数据中心下的服务信息;所述网关通过与分布式系统的各个应用系统进行通信,根据所述注册中心的服务列表进行所述微服务之间的调用;所述网关和微服务设置有多中心模块和服务列表多级缓存模块,其中,所述多中心模块用于对多个所述数据中心的所述多个注册中心进行状态监听;所述服务列表多级缓存模块对所述注册中心的所述服务列表进行缓存。

3、根据本发明的另一个实施例,提供了一种分布式系统的服务调用方法,采用上述服务调用装置实现,包括:客户端获取多个数据中心的名称列表,根据所述客户端的调用微服务名称从对应的所述数据中心的注册中心按照预设的所述注册中心的优先级顺序获取服务列表,并根据所述服务列表进行微服务调用,其中,在获取服务列表时,根据预设的优先级顺序从服务列表多级缓存模块中获取所述服务列表。

4、根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

5、根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

6、通过本发明,通过提供一种分布式系统的服务调用装置,包括多个数据中心,每个数据中心包括多个注册中心、多个微服务、多个网关,其中,注册中心用于注册对应的数据中心的服务信息;网关与分布式系统的各个应用系统进行通信,根据注册中心的服务列表进行微服务之间的调用;网关设置有多中心模块和服务列表多级缓存模块,其中,多中心模块用于对多个数据中心的多个注册中心进行状态监听;服务列表多级缓存模块对不同状态下的注册中心的服务列表进行缓存。通过本发明,解决了相关技术中分布式系统在存在各中心独立、可用性差、应急机制考虑不全面的问题,达到了提高多注册中心协调性和可用性,并能够解决应急状况的效果。



技术特征:

1.一种分布式系统的服务调用装置,其特征在于,包括多个数据中心,每个所述数据中心包括多个注册中心、多个微服务、多个网关,其中,

2.根据权利要求1所述的系统,其特征在于,其中,所述注册中心为consul注册中心;所述微服务为springcloud微服务。

3.根据权利要求1所述的系统,其特征在于,所述多中心模块,还包括:用于对所述多个注册中心的所述服务状态进行监听的监听器、对所述多个注册中心与客户端进行连接的连接器、对所述多个注册中心获取的所述服务列表按照访问规则过滤的过滤器。

4.根据权利要求1所述的系统,其特征在于,所述服务列表多级缓存模块包括:负载均衡缓存单元、本地服务列表缓存单元、本地文件缓存单元,其中,所述负载均衡缓存单元的优先级大于所述本地服务列表缓存单元的优先级;

5.根据权利要求1所述的系统,其特征在于,所述网关还设置有应急逃生模块,所述应急逃生模块用于为所述分布式系统提供代理地址和应急地址,并在所述代理地址出现异常的情况下,直接通知所述数据中心启用所述应急地址进行服务调用。

6.一种分布式系统的服务调用方法,其特征在于,采用权利要求1-5任一所述的服务调用装置实现,包括:

7.根据权利要求6所述的方法,其特征在于,还包括:

8.根据权利要求6所述的方法,其特征在于,还包括:

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求6至8任一项中所述的方法。

10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求6至8任一项中所述的方法。


技术总结
本发明实施例提供了一种分布式系统的服务调用装置及方法,装置包括多个数据中心,每个数据中心包括多个注册中心、多个微服务、多个网关,其中,注册中心用于注册对应的数据中心的服务信息;网关与分布式系统的各个应用系统进行通信,根据注册中心的服务列表进行微服务之间的调用;网关和微服务设置有多中心监听模块和服务列表多级缓存模块,其中,多中心监听模块用于对多个数据中心的服务信息进行状态监听;服务列表多级缓存模块对注册中心的服务列表进行缓存。通过本发明,解决了相关技术中分布式系统在存在各中心独立、可用性差、应急机制考虑不全面的问题,达到了提高多注册中心协调性和可用性,并能够解决应急状况的效果。

技术研发人员:时丹
受保护的技术使用者:中国光大银行股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1