本发明涉及计算机,具体为一种基于微服务的高可用网关与容错系统、方法、设备和介质。
背景技术:
1、随着互联网应用的普及,微服务架构在应用开发中变得越来越流行。微服务架构将应用程序拆分为一系列独立的服务,每个服务都可以独立部署和扩展,从而提高了系统的灵活性和可伸缩性。然而,微服务架构也面临着一些挑战,如服务之间的通信复杂性、网络故障以及服务崩溃可能导致的系统不稳定性。传统单体架构在应对现代应用需求时存在一些明显的缺点和不足:
2、1.单点故障:整个应用作为一个单一的单元部署和运行,一旦出现故障,整个应用都会受到影响,导致系统的不可用。
3、2.扩展性差:单体应用往往无法灵活地按需扩展某个功能模块或服务,限制了系统的横向扩展能力。
4、3.技术栈绑定:单体应用通常使用同一种技术栈和开发框架,限制了技术选型的灵活性,难以根据业务需求选择最适合的技术和工具。
5、4.部署复杂性:单体应用的部署通常是一个复杂的过程,需要考虑多个组件的依赖关系和配置,导致部署过程繁琐、耗时。
6、5.难以维护和演进:单体应用的代码通常是一个庞大的代码库,随着时间的推移和业务需求的变化,代码会变得难以理解、维护和演进,降低了开发效率和代码质量。
7、6.灵活性差:单体应用具有较高的耦合度,各个功能模块之间的依赖关系复杂,难以实现模块的替换和功能的定制化。
8、7.难以实现持续交付和部署:单体应用通常需要整体部署,因此难以实现快速的持续交付和部署,限制了系统的灵活性和响应能力。
9、综上所述,传统单体架构在面对现代应用的复杂性、高可用性、高扩展性和快速迭代的要求时存在容错性差、可用性低的问题,因此人们逐渐转向采用更灵活、更可伸缩的架构模式,如微服务架构,以应对不断变化的业务需求和技术挑战。
10、鉴于此,有必要提供一种基于微服务的高可用网关与容错系统、方法、设备和介质。
技术实现思路
1、本发明提供的一种基于微服务的高可用网关于容错系统、方法、设备和介质,有效的解决了现有单体架构下微服务可用性低、容错性差的问题。
2、本发明所采用的技术方案是:
3、一种基于微服务的高可用网关与容错系统,包括服务注册与发现模块、负载均衡模块、断路器模块、故障自动恢复模块以及监控报警模块,其中,所述服务注册与发现模块用于供微服务注册,所述负载均衡模块用于将请求分发到不同的服务实例上;所述断路器模块用于暂时阻止对微服务的请求,所述故障自动恢复模块用于自动恢复故障;所述监控报警模块用于实时监控微服务的运行情况和系统性能指标。
4、进一步的是:所述监控报警模块在检测到服务实例出现异常时,通过报警通知运维团队。
5、进一步的是:所述监控报警模块在检测到服务实例出现异常时,将服务实例的健康状态反馈给服务注册与发现模块,从而影响服务注册与发现模块过程,确保只有健康的服务实例被负载均衡模块选中。
6、进一步的是:所述负载均衡模块通过查询服务注册与发现模块获取所有可用的服务实例列表,然后根据负载均衡算法,将请求分发到不同的服务实例上,且所述负载均衡模块在发送请求时发现某个服务实例响应时间超出预设时间或响应失败,可以触发断路器模块暂时停止对该服务实例的请求。
7、进一步的是:所述断路器模块检测到故障自动恢复模块尝试恢复服务失败时,断路器模块通知故障自动恢复模块,故障自动恢复模块尝试重启服务实例。
8、进一步的是:所述故障自动恢复模块在尝试恢复服务时,会依赖监控报警模块提供的数据来判断服务的健康状态。
9、进一步的是:所述服务注册与发现模块在接受服务实例注册后,定期接收服务实例的心跳以获得服务实例的存活状态。
10、一种基于微服务的高可用网关与容错方法,采用基于微服务的高可用网关与容错系统服务实例在启动时向服务注册与发现模块注册,并定期发送心跳以表明其存活状态;负载均衡模块通过查询服务注册与发现模块来获取所有可用的服务实例列表,然后根据将请求分发到不同的服务实例上;负载均衡模块在分配请求时,如果发现某个服务实例响应时间超出预定时长或响应失败,可以触发断路器模块运行;断路器模块会暂时阻止该服务实例的请求,将流量转移到备用服务或返回默认响应,从而避免系统过载和故障扩散;断路器模块可以快速响应服务故障,故障自动恢复模块则负责在服务失败后尝试恢复服务;故障自动恢复模块可以接收断路器模块检测到服务失败的信息,故障自动恢复模块会尝试重启服务实例或采取其他恢复措施;故障自动恢复模块在尝试恢复服务时,会依赖监控报警模块提供的数据来判断服务的健康状态;监控报警模块可以检测服务实例的健康状况,并在服务实例出现异常时进行报警,确保只有健康的服务实例被负载均衡模块选中。
11、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于微服务的高可用网关与容错方法的步骤。
12、一种计算机设备,包括处理器、通信接口、存储器和通信总线,其中所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;其中:
13、所述存储器,用于存放计算机程序;
14、所述处理器,用于通过运行所述存储器上所存放的程序来执行基于微服务的高可用网关与容错方法的步骤。
15、发明的有益效果:各个模块之间的相互协作,形成了一个闭环系统,能够自动检测问题、响应故障并尝试恢复服务,提高了系统的可用性和稳定性,减少了因微服务故障而导致的服务中断时间;提高了系统的性能和负载均衡能力,适应高并发和大流量的请求;降低了系统的维护成本和管理复杂度,提高了开发和运维效率,从而增强了可用性和容错性。
1.一种基于微服务的高可用网关与容错系统,其特征在于:包括服务注册与发现模块、负载均衡模块、断路器模块、故障自动恢复模块以及监控报警模块,其中,所述服务注册与发现模块用于供微服务注册,所述负载均衡模块用于将请求分发到不同的服务实例上;所述断路器模块用于暂时阻止对微服务的请求,所述故障自动恢复模块用于自动恢复故障;所述监控报警模块用于实时监控微服务的运行情况和系统性能指标。
2.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述监控报警模块在检测到服务实例出现异常时,通过报警通知运维团队。
3.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述监控报警模块在检测到服务实例出现异常时,将服务实例的健康状态反馈给服务注册与发现模块,从而影响服务注册与发现模块过程,确保只有健康的服务实例被负载均衡模块选中。
4.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述负载均衡模块通过查询服务注册与发现模块获取所有可用的服务实例列表,然后根据负载均衡算法,将请求分发到不同的服务实例上,且所述负载均衡模块在发送请求时发现某个服务实例响应时间超出预设时间或响应失败,可以触发断路器模块暂时停止对该服务实例的请求。
5.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述断路器模块检测到故障自动恢复模块尝试恢复服务失败时,断路器模块通知故障自动恢复模块,故障自动恢复模块尝试重启服务实例。
6.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述故障自动恢复模块在尝试恢复服务时,会依赖监控报警模块提供的数据来判断服务的健康状态。
7.根据权利要求1所述的一种基于微服务的高可用网关与容错系统,其特征在于:所述服务注册与发现模块在接受服务实例注册后,定期接受服务实例的心跳以获得服务实例的存活状态。
8.一种基于微服务的高可用网关与容错方法,采用权利要求1至7任一项所述的基于微服务的高可用网关与容错系统,其特征在于:服务实例在启动时向服务注册与发现模块注册,并定期发送心跳以表明其存活状态;负载均衡模块通过查询服务注册与发现模块来获取所有可用的服务实例列表,然后根据将请求分发到不同的服务实例上;负载均衡模块在分配请求时,如果发现某个服务实例响应时间超出预定时长或响应失败,可以触发断路器模块运行;断路器模块会暂时阻止该服务实例的请求,将流量转移到备用服务或返回默认响应,从而避免系统过载和故障扩散;断路器模块可以快速响应服务故障,故障自动恢复模块则负责在服务失败后尝试恢复服务;故障自动恢复模块可以接受断路器模块检测到服务失败的信息,故障自动恢复模块会尝试重启服务实例或采取其他恢复措施;故障自动恢复模块在尝试恢复服务时,会依赖监控报警模块提供的数据来判断服务的健康状态;监控报警模块可以检测服务实例的健康状况,并在服务实例出现异常时进行报警,确保只有健康的服务实例被负载均衡模块选中。
9.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述权利要求8所述的基于微服务的高可用网关与容错方法的步骤。
10.一种计算机设备,其特征在于:包括处理器、通信接口、存储器和通信总线,其中所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;其中: