本发明涉及数据通信,具体地说是可自愈的api网关实现方法及系统。
背景技术:
1、随着烟草信息系统架构向“微服务”+“大中台”不断演进,构建高效可靠的微服务管理技术中台,已经被业界所广泛认知。技术中台为微服务提供通用基础能力支撑,让业务应用能够更专注于自己的业务逻辑,减少对于通用基础能力的耗时。技术中台普遍提供了api网关接入功能,能够有效屏蔽微服务内部细节,通过统一入口达到简化用户访问微服务内部api能力。虽然api网关简化了用户消费api复杂度,但是当api网关自身出现异常时,可能会导致系统崩溃或无法使用。
2、如何实现网关自愈修复,保证外部正常调用,是需要解决的技术问题。
技术实现思路
1、本发明的技术任务是针对以上不足,提供可自愈的api网关实现方法及系统,来解决如何实现网关自愈修复,保证外部正常调用的技术问题。
2、第一方面,本发明一种可自愈的api网关实现方法,包括如下步骤:
3、获取网关检测周期表,判断网关是否在网关检测周期表指定的检测周期内;如网关处于网关检测周期表指定的检测周期内,对网关执行健康检测,并将检测结果记录到数据库中;
4、如果每次检测结果均为正常,将检测结果存储到数据库中,如果检测结果存在异常,对网关启动自愈操作,通过自愈操作降级或者下线导致网关异常的api服务,重启网关,并通过告警操作向网关负责人发送告警信息,在网关重启过程中,若服务器高负荷导致网关重启失败,网关采取延迟启动的方式并进行多次尝试重启。
5、作为优选,检测周期为网关每次检测间隔的时间周期;
6、如果网关在网关检测周期表指定的检测周期内,基于检测周期,周期性的对网关执行健康检测。
7、作为优选,对网关执行健康检测时,对网关的检测指标进行检测,检测指标包括网关的cpu占用率、内存使流用率、磁盘io利用率、网络量负载、线程数、以及线程持有时间。
8、作为优选,对于降级或下线的服务,记录降级或下线的时间;
9、对于自愈重启的网关,记录最后一次的故障时间和恢复时间;
10、当网关重启超过最大启动次数,通过告警操作通知网关负责人进行人工干预。
11、作为优选,告警信息以电话、短信、邮件、微信和/或钉钉的方式通知网关负责人。
12、第二方面,本发明一种可自愈的api网关实现系统,用于执行如第一方面任一项所述的可自愈的api网关实现方法实现网关自愈,所述系统包括检测模块、自愈模块和告警模块;
13、所述检测模块用于执行如下:获取网关检测周期表,判断网关是否在网关检测周期表指定的检测周期内,如网关处于网关检测周期表指定的检测周期内,对网关执行健康检测,如果每次检测结果均为正常,将检测结果存储到数据库中,如果检测结果存在异常,调用自愈模块;
14、所述自愈模块用于执行如下:对网关启动自愈操作,通过自愈操作降级或者下线导致网关异常的api服务,重启网关,并调用告警模块,所述告警模块用于通过告警操作向网关负责人发送告警信息;
15、在网关重启过程中,若服务器高负荷导致网关重启失败,所述自愈模块用于调控网关采取延迟启动的方式并进行多次尝试重启。
16、作为优选,检测周期为网关每次检测间隔的时间周期;
17、如果网关在网关检测周期表指定的检测周期内,基于检测周期,所述检测模块用于周期性的对网关执行健康检测。
18、作为优选,对网关执行健康检测时,所述检测模块用于对网关的检测指标进行检测,检测指标包括网关的cpu占用率、内存使流用率、磁盘io利用率、网络量负载、线程数、以及线程持有时间。
19、作为优选,自愈模模块用于执行如下:
20、对于降级或下线的服务,记录降级或下线的时间;
21、对于自愈重启的网关,记录最后一次的故障时间和恢复时间;
22、当网关重启超过最大启动次数,调用告警模块,告警模块用于通过告警操作通知网关负责人进行人工干预。
23、作为优选,所述告警模块用于将告警信息以电话、短信、邮件、微信和/或钉钉的方式通知网关负责人。
24、本发明的可自愈的api网关实现方法及系统具有以下优点:
25、1、基于检测周期对网关进行检测,提高了api网关的可用性和稳定性,减少了系统崩溃和服务不可用的风险;
26、2、在api网关在调用异常时,提供了自愈功能,可以自动检测和修复api服务异常问题,而无需人工干预,节省时间和成本;
27、3、提供有告警功能,在异常发生时,能够及时通知相关负责人,具有良好的推广应用价值。
1.一种可自愈的api网关实现方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的可自愈的api网关实现方法,其特征在于,检测周期为网关每次检测间隔的时间周期;
3.根据权利要求1或2所述的可自愈的api网关实现方法,其特征在于,对网关执行健康检测时,对网关的检测指标进行检测,检测指标包括网关的cpu占用率、内存使流用率、磁盘io利用率、网络量负载、线程数、以及线程持有时间。
4.根据权利要求3所述的可自愈的api网关实现方法,其特征在于,对网关启动自愈操作时,执行如下:
5.根据权利要求4所述的可自愈的api网关实现方法,其特征在于,告警信息以电话、短信、邮件、微信和/或钉钉的方式通知网关负责人。
6.一种可自愈的api网关实现系统,其特征在于,用于执行如权利要求1-5任一项所述的可自愈的api网关实现方法实现网关自愈,所述系统包括检测模块、自愈模块和告警模块;
7.根据权利要求6所述的可自愈的api网关实现系统,其特征在于,检测周期为网关每次检测间隔的时间周期;
8.根据权利要求6或7所述的可自愈的api网关实现系统,其特征在于,对网关执行健康检测时,所述检测模块用于对网关的检测指标进行检测,检测指标包括网关的cpu占用率、内存使流用率、磁盘io利用率、网络量负载、线程数、以及线程持有时间。
9.根据权利要求8所述的可自愈的api网关实现系统,其特征在于,对网关启动自愈操作时,所述自愈模块用于执行如下:
10.根据权利要求9所述的可自愈的api网关实现系统,其特征在于,所述告警模块用于将告警信息以电话、短信、邮件、微信和/或钉钉的方式通知网关负责人。