一种微服务的熔断方法、设备及存储介质与流程
- 国知局
- 2024-10-09 16:18:22
本发明涉及容器集群的,尤其涉及一种微服务的熔断方法、设备及存储介质。
背景技术:
1、在微服务的架构中,某些微服务之间存在调用关系,由于网络故障、服务过载等各种原因可能导致微服务之间的调用出现延迟、错误或失败。
2、目前是在微服务的开发期间,在微服务的代码中添加熔断功能的代码,从而在调用出现延迟、错误或失败时熔断调用,防止错误的调用继续扩散、形成雪崩的现象,保障系统的稳定性和可靠性。
3、但是,不同微服务都需要独立在开发期间编写熔断功能的代码,会导致开发量增大,且存在大量冗余的工作量,此外,熔断功能的代码是一种侵入式的设计,即,将熔断功能的代码注入到微服务的进程内存中,让微服务的进程具备熔断功能,操作的复杂度较高,且影响微服务的稳定性。
技术实现思路
1、本发明提供了一种微服务的熔断方法、装置、设备及存储介质,以为微服务提供开发量低且无侵入的熔断功能、保证微服务的稳定性。
2、根据本发明的一方面,提供了一种微服务的熔断方法,应用于容器编排引擎kubernetes,所述容器编排引擎kubernetes中具有插件与容器,所述容器中加载有微服务,所述方法包括:
3、调用所述插件拦截当前所述微服务向其他所述微服务发送的业务请求;
4、调用所述插件依据所述业务请求对当前所述微服务进行熔断检测,得到检测结果;
5、若所述检测结果为熔断,则调用所述插件禁止将所述业务请求传递至其他所述微服务,向当前所述微服务发送表示熔断的错误信息;
6、若所述检测结果为未熔断,则调用所述插件将所述业务请求传递至其他所述微服务。
7、根据本发明的另一方面,提供了一种微服务的熔断装置,应用于容器编排引擎kubernetes,所述容器编排引擎kubernetes中具有插件与容器,所述容器中加载有微服务,所述装置包括:
8、业务请求拦截模块,用于调用所述插件拦截当前所述微服务向其他所述微服务发送的业务请求;
9、熔断检测模块,用于调用所述插件依据所述业务请求对当前所述微服务进行熔断检测,得到检测结果;
10、熔断处理模块,用于若所述检测结果为熔断,则调用所述插件禁止将所述业务请求传递至其他所述微服务,向当前所述微服务发送表示熔断的错误信息;
11、未熔断处理模块,用于若所述检测结果为未熔断,则调用所述插件将所述业务请求传递至其他所述微服务。
12、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
13、至少一个处理器;以及
14、与所述至少一个处理器通信连接的存储器;其中,
15、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的微服务的熔断方法。
16、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现本发明任一实施例所述的微服务的熔断方法。
17、在本实施例中,容器编排引擎kubernetes中具有插件与容器,容器中加载有微服务,调用插件拦截当前微服务向其他微服务发送的业务请求;调用插件依据业务请求对当前微服务进行熔断检测,得到检测结果;若检测结果为熔断,则调用插件禁止将业务请求传递至其他微服务,向当前微服务发送表示熔断的错误信息;若检测结果为未熔断,则调用插件将业务请求传递至其他微服务。多个微服务可以共用插件实现熔断功能,并不单独开发熔断功能的代码,减少了大量冗余的工作量,可以有效降低开发量,插件是一种无侵入式的设计,让微服务具备熔断功能,操作的复杂度较低,且保持微服务的稳定性。
18、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
技术特征:1.一种微服务的熔断方法,其特征在于,应用于容器编排引擎kubernetes,所述容器编排引擎kubernetes中具有插件与容器,所述容器中加载有微服务,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述调用所述插件依据所述业务请求对当前所述微服务进行熔断检测,得到检测结果,包括:
3.根据权利要求1所述的方法,其特征在于,还包括:
4.根据权利要求3所述的方法,其特征在于,所述若当前所述微服务已配置熔断检测,则调用所述插件对所述业务响应对应的业务请求进行熔断统计,得到统计结果,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述容器编排引擎kubernetes中具有代理服务与配置服务,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述向所述代理服务中注入插件,包括:
7.根据权利要求6所述的方法,其特征在于,所述对所述过滤器envoyfilter进行配置,以向类型为envoy代理的所述代理服务中注入类型为指令集webassembly的所述插件,包括:
8.根据权利要求6所述的方法,其特征在于,所述容器编排引擎kubernetes中具有实例pod,所述实例pod中具有一个或多个容器,所述向所述代理服务中注入插件,还包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行时实现权利要求1-8中任一项所述的微服务的熔断方法。
技术总结本发明公开了一种微服务的熔断方法、装置、设备及存储介质,该方法包括:容器编排引擎Kubernetes中具有插件与容器,容器中加载有微服务,调用插件拦截当前微服务向其他微服务发送的业务请求;调用插件依据业务请求对当前微服务进行熔断检测,得到检测结果;若检测结果为熔断,则调用插件禁止将业务请求传递至其他微服务,向当前微服务发送表示熔断的错误信息;若检测结果为未熔断,则调用插件将业务请求传递至其他微服务。多个微服务可以共用插件实现熔断功能,并不单独开发熔断功能的代码,减少了大量冗余的工作量,可以有效降低开发量,插件是一种无侵入式的设计,让微服务具备熔断功能,操作的复杂度较低,且保持微服务的稳定性。技术研发人员:蒋鸿琨,沈文喆受保护的技术使用者:广州趣研网络科技有限公司技术研发日:技术公布日:2024/9/26本文地址:https://www.jishuxx.com/zhuanli/20240929/312617.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表