技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于双服务网格切换的微服务架构处理方法及系统与流程  >  正文

一种基于双服务网格切换的微服务架构处理方法及系统与流程

  • 国知局
  • 2024-08-02 13:54:42

本发明涉及网络通信及微服务架构,尤其涉及一种基于双服务网格切换的微服务架构处理方法及系统。

背景技术:

1、service mesh服务网格是一种用于大规模微服务架构下的网络基础设施,通过为应用程序提供通信、可观察性和安全性等关键功能,简化了微服务之间的通信和管理。作为应用程序间通信的中间层,解耦了应用程序的控制层面,处理了流量路由、负载均衡、服务发现、故障恢复等繁琐的任务,使开发人员能够更专注于业务逻辑的开发,而无需关注底层的网络细节。在微服务架构中,sidecar代理是与每个微服务实例一同部署的轻量级网络代理。它负责接管对应服务的入流量和出流量,将以前由公共库或框架实现的功能,如熔断、限流、降级、服务发现、调用链分布式跟踪以及立体监控等,从服务中抽离出来。这样,服务节点只需专注于业务逻辑,而服务之间的通信和网络连接则由sidecar代理处理。在微服务架构实现中,service mesh提供了一个基础设施层,而sidecar代理则是这一基础设施层中的一个具体实现,可以帮助实现更加稳定、可维护和可扩展的通信和网络连接。

2、但是,在service mesh服务网格实际应用中,一旦sidecar代理出现故障,会对所在的服务实例产生直接影响,服务实例之间的通信可能会中断,无法正常地发送和接收请求,同时服务实例将丧失诸如服务发现、负载均衡、故障恢复、安全性等服务治理功能。另一方面,sidecar代理通常还负责收集和上报指标、日志等监控数据,以便进行全局可观测性分析和故障排查,如果sidecar代理失效,将减少对整个服务网格的监控和可观察性。

3、proxyless mesh服务网格是一种新型的服务网格技术,通过实现应用进程与控制面间以及应用进程间的点对点直接通信,规避了sidecar代理模式带来的性能损耗与部署架构复杂性。通过应用proxyless mesh服务网格,可以有效避免service mesh服务网格下应用sidecar代理高资源消耗、请求时延增长等问题,并且可以规避因sidecar代理故障对服务实例的通信影响。但是,proxyless mesh服务网格在实现过程中引入了新的组件和协议,增加了系统的复杂性,且需要进行额外配置以实现与传统的微服务框架兼容和集成。

技术实现思路

1、为解决现有技术的不足,本发明提出一种基于双服务网格切换的微服务架构处理方法及系统,当sidecar代理出现故障时,通过健康检测实现自动切换网格链路,减少业务中断时间,保障业务连续性,解决sidecar代理故障时,缺乏其他方式收集服务实例状态信息的问题;同时可以隔离sidecar升级部署对服务实例的影响,实现在sidecar代理升级过程中不中断业务流量。

2、为实现以上目的,本发明所采用的技术方案包括:

3、一种基于双服务网格切换的微服务架构处理方法,其特征在于,包括:

4、s1、获取第一服务网格的连接信息,判断第一服务网格是否存在业务流量,所述第一服务网格为调用sidecar代理的service mesh服务网格;

5、s2、当判断第一服务网格存在业务流量时,使用第一服务网格执行业务请求;

6、s3、当判断第一服务网格不存在业务流量时,使用第一服务网格执行心跳请求判断sidecar代理是否存在响应失败,当判断sidecar代理存在响应失败时记录第一异常标记;

7、s4、判断预设时间窗口内第一异常标记总数量是否超过预设阈值;

8、s5、当判断预设时间窗口内第一异常标记总数量不超过预设阈值时,更新时间窗口并重新执行步骤s1至s4;

9、s6、当判断预设时间窗口内第一异常标记总数量超过预设阈值时,切换至第二服务网格执行业务请求,所述第二服务网格为不调用sidecar代理的proxyless mesh服务网格。

10、进一步地,所述步骤s2还包括:

11、判断第一服务网格执行业务请求是否存在响应异常;

12、当判断第一服务网格执行业务请求不存在响应异常时,更新时间窗口;

13、当判断第一服务网格执行业务请求存在响应异常时,记录第二异常标记。

14、进一步地,所述方法还包括:

15、判断预设时间窗口内第一异常标记和第二异常标记的总数量是否超过预设阈值;

16、当判断预设时间窗口内第一异常标记和第二异常标记的总数量超过预设阈值时,切换至第二服务网格执行业务请求。

17、进一步地,所述方法还包括:

18、获取第一服务网格的sidecar代理升级请求;

19、依据sidecar代理升级请求将对应服务实例切换至第二服务网格执行业务请求,并执行sidecar代理升级操作。

20、进一步地,所述方法还包括:

21、判断sidecar代理升级操作是否完成;

22、当判断sidecar代理升级操作完成时,使用第一服务网格执行心跳请求判断sidecar代理在预设时间窗口内是否存在响应失败;

23、当判断sidecar代理在预设时间窗口内不存在响应失败时,切换第一服务网格执行业务请求。

24、进一步地,所述方法还包括:

25、切换至第二服务网格执行业务请求后,使用第一服务网格执行心跳请求判断sidecar代理在预设时间窗口内是否存在响应失败;

26、当判断sidecar代理在预设时间窗口内不存在响应失败时,切换第一服务网格执行业务请求。

27、本发明还涉及一种基于双服务网格切换的微服务架构处理系统,其特征在于,包括:

28、业务流量监控模块,用于判断第一服务网格是否存在业务流量;

29、健康检测模块,用于使用第一服务网格执行心跳请求判断sidecar代理是否存在响应失败,当判断sidecar代理存在响应失败时记录第一异常标记;

30、切换管理模块,用于判断预设时间窗口内第一异常标记总数量是否超过预设阈值,当判断预设时间窗口内第一异常标记总数量超过预设阈值时,切换至第二服务网格执行业务请求。

31、本发明还涉及一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。

32、本发明还涉及一种电子设备,其特征在于,包括处理器和存储器;

33、所述存储器,用于存储第一服务网格和第二服务网格;

34、所述处理器,用于通过调用第一服务网格和第二服务网格,执行上述的方法。

35、本发明还涉及一种计算机程序产品,包括计算机程序和/或指令,其特征在于,该计算机程序和/或指令被处理器执行时实现上述方法的步骤。

36、本发明的有益效果为:

37、采用本发明所述基于双服务网格切换的微服务架构处理方法及系统,当sidecar代理出现故障导致无法正常代理通讯、丧失服务治理能力时,通过健康检测实现自动切换网格链路,减少业务中断时间,保障业务连续性,解决sidecar代理故障时,缺乏其他方式收集服务实例状态信息的问题;同时可以隔离sidecar升级部署对服务实例的影响,实现在sidecar代理升级过程中不中断业务流量,解决传统滚动部署方式升级sidecar需要同时提供多个服务实例资源的问题。通过应用本发明的微服务架构处理方法及系统,能够实现双服务网格架构下对服务实例的网格链路的自动切换,增强了传统service mesh服务网格体系的高可用能力,降低了业务中断风险,同时为传统service mesh服务网格体系下的sidecar代理升级提供了有效隔离措施,减小影响范围。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241067.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。