一种微服务集群流量控制方法和系统与流程

文档序号:33035665发布日期:2023-01-24 19:42阅读:28来源:国知局
一种微服务集群流量控制方法和系统与流程

1.本发明涉及微服务流量控制技术领域,尤其涉及一种微服务集群流量控制方法和系统。


背景技术:

2.微服务平台可以提供便捷的服务管理和限流降级等功能,使得业务服务更专注于自身业务代码的开发。当前,在微服务部署上线方面,现有的工具和方法已基本可以满足开发和运行域的大部分需求,但在微服务流量控制的领域,仍然缺少行之有效的工具和方法。
3.在实际应用中,为了对微服务进行流量控制,如图1所示,大多数厂商都是对app前置一个nginx流量控制器,通过在nginx流量控制器中增加相关的配置,来控制单位时间内的app请求数量。nginx流量控制器的设置和配置,可以满足普通应用场景的需求。
4.一方面,对于一些特殊的应用场景,比如秒杀、拼团活动等场景中,流量会出现激增,这时很容易就将应用给拉爆,此时,更多的是需要针对app某一两个接口进行流量的治理,而非针对整个应用路径进行处理。
5.另一方面,容器云平台或传统的虚拟机集群上部署的app,一般都是两个服务实例起步的,在这种场景下,我们就需要集群化的流量治理。比如在复杂的金融、银行场景下,当遇到多集群冗余的情况时,一个app往往会部署到多个不同的集群,且分布在多地,在多活的情况下,如何针对所有不同的服务实例进行多集群的流量治理,是当前流量治理领域的重要研究方向。
6.此外,在实际应用中,单服务实例流量治理、集群流量治理以及多集群流量治理等场景的解决方案往往都不是某个固定的方法,并且受到x86和arm环境的影响,管理和维护困难。
7.因此,如何提供一种更加精确、高效以及满足于单集群和多集群流量控制的方法,成为亟待解决的技术问题。


技术实现要素:

8.有鉴于此,为了解决现有技术中流量治理粒度较粗,无法同时实现单集群和多集群的流量治理以及运行和维护不变的不足,提供一种可适配多种场景下的流量治理方案,满足各种复杂环境下的微服务流量控制的需求。
9.一方面,本发明提供一种微服务单集群流量控制方法,包括:
10.通过前端页面将流控配置信息写入单集群中的流控配置中心和流量总控单元,所述流控配置信息包括app每秒所允许的最大请求次数;
11.通过流控采集器实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元,所述请求流量信息包括当前app每秒的请求次数;
12.通过流量总控单元根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
13.进一步地,本发明微服务单集群流量控制方法中,通过流量总控单元根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务,包括:当流控配置信息中app每秒所允许的最大请求次数不小于当前请求流量信息中app每秒的请求次数时,判定app可继续对外服务,当流控配置信息中app每秒所允许的最大请求次数小于当前请求流量信息中app每秒的请求次数时,判定app不可继续对外服务。
14.进一步地,本发明微服务单集群流量控制方法,包括:在断网时,app通过与流控配置中心建立长连接,从流控配置中心获取流控配置信息,根据获取的流控配置信息执行单app流量控制或者执行单服务实例流量控制。
15.进一步地,本发明微服务单集群流量控制方法,包括:根据app的接口api配置流控配置信息,定义app每秒所允许的最大请求次数。
16.进一步地,本发明微服务单集群流量控制方法,包括:根据场景需求通过前端页面对流控配置信息实时动态更新。
17.另一方面,本发明提供一种微服务多集群流量控制方法,包括:
18.通过前端页面将流控配置信息写入流控配置中心协调器和流控协调器,通过流控配置中心协调器将流控配置信息同步至各单集群中的流控配置中心,所述流控配置信息包括app每秒所允许的最大请求次数;
19.通过采集协调器实时采集并汇总各个单集群的流控采集器上的请求流量信息,将汇总的请求流量信息实时发送至流控协调器;
20.通过流控协调器对各单集群的流量总控单元进行纳管,多集群模式开启后,当app向单集群的流量总控单元发送请求流量信息,流量总控单元将请求流量信息直接转发至流控协调器,所述请求流量信息包括当前app每秒的请求次数;
21.通过流控协调器根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
22.进一步地,本发明微服务多集群流量控制方法中,通过流控配置中心协调器将流控配置信息同步至各单集群中的流控配置中心,包括:当各单集群中已经存在流控配置信息,通过流控配置中心协调器将具有最小的app每秒所允许的最大请求次数的流控配置信息同步至各个单集群进行覆盖。
23.进一步地,本发明微服务多集群流量控制方法中,通过流控协调器根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务,包括:当流控配置信息中app每秒所允许的最大请求次数不小于当前请求流量信息中app每秒的请求次数时,判定app可继续对外服务,当流控配置信息中app每秒所允许的最大请求次数小于当前请求流量信息中app每秒的请求次数时,判定app不可继续对外服务。
24.再者,本发明提供一种微服务单集群流量控制系统,包括:
25.单集群协调模块,包括流控配置中心、流控采集器以及流量总控单元,其中,流控配置中心用于写入流控配置信息;流控采集器用于实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元;流量总控单元用于写入流控配置信息,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
26.最后,本发明提供一种微服务多集群流量控制系统,包括:
27.单集群协调模块,包括流控配置中心、流控采集器以及流量总控单元,其中,流控配置中心用于写入流控配置信息;流控采集器用于实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元;流量总控单元用于写入流控配置信息,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务;
28.多集群协调模块,包括流控配置中心协调器、采集协调器以及流控协调器,其中,流控配置中心协调器用于写入流控配置信息,将流控配置信息同步至各单集群中的流控配置中心;采集协调器用于实时采集并汇总各个单集群的流控采集器上的请求流量信息,将汇总的请求流量信息实时发送至流控协调器;流控协调器用于对各单集群的流量总控单元进行纳管,多集群模式开启后,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
29.本发明微服务集群流量控制方法和系统,具有以下有益效果:
30.1.通过流控配置中心、流控采集器和流量总控单元,在集群内实现微服务流量控制;
31.2.通过流控配置中心协调器、采集协调器以及流控协调器,纳管各集群下的流量总控单元,实现了微服务在多集群下的流量控制;
32.3.通过根据app的接口api配置流控配置信息,以app接口的粒度进行流量控制,提高流量控制的精度;
33.4.可以根据场景需求通过前端页面对流控配置信息实时动态更新,适用于各类微服务业务的流控;
34.5.本发明的方法和系统,不受x86和arm环境影响,安全快捷,且易于管理。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1为现有技术中通过nginx流量控制器流量控制的示意图。
37.图2为本发明示例性第四实施例微服务单集群流量控制系统的架构图。
38.图3为本发明示例性第五实施例微服务多集群流量控制系统的结构体。
具体实施方式
39.下面结合附图对本发明实施例进行详细描述。
40.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
41.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。
举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
42.本发明示例性第一实施例提供一种微服务单集群流量控制方法,本实施例方法中通过流控配置中心、流控采集器以及流量总控单元对单集群中的app进行流量控制,包括:
43.通过前端页面将流控配置信息写入单集群中的流控配置中心和流量总控单元,所述流控配置信息包括app每秒所允许的最大请求次数;
44.通过流控采集器实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元,所述请求流量信息包括当前app每秒的请求次数;
45.通过流量总控单元根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
46.在实际应用时,本实施例方法中,通过流量总控单元根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务,包括:当流控配置信息中app每秒所允许的最大请求次数不小于当前请求流量信息中app每秒的请求次数时,判定app可继续对外服务,当流控配置信息中app每秒所允许的最大请求次数小于当前请求流量信息中app每秒的请求次数时,判定app不可继续对外服务。
47.在实际应用中,本实施例方法包括:根据app的接口api配置流控配置信息,定义app每秒所允许的最大请求次数。本实施例的方法,通过根据app的接口api配置流控配置信息,以app接口的粒度进行流量控制,提高流量控制的精度。
48.本实施例方法,可以根据场景需求通过前端页面对流控配置信息实时动态更新,适用于各类微服务业务的流控;不受x86和arm环境影响,且安全快捷,易于管理。
49.本发明示例性第二实施例提供一种微服务单集群流量控制方法,本实施例是示例性第一实施例所述方法的优选实施例,本实施例方法中,通过流控配置中心、流控采集器以及流量总控单元对单集群中的app进行流量控制,包括:在断网时,app通过与流控配置中心建立长连接,从流控配置中心获取流控配置信息,根据获取的流控配置信息执行单app流量控制或者执行单服务实例流量控制。
50.本发明示例性第三实施例提供一种微服务多集群流量控制方法,在多集群场景中,本实施例方法通过多集群协调模块对各单集群中的app进行流量控制,包括:
51.通过前端页面将流控配置信息写入流控配置中心协调器和流控协调器,通过流控配置中心协调器将流控配置信息同步至各单集群中的流控配置中心,所述流控配置信息包括app每秒所允许的最大请求次数;
52.通过采集协调器实时采集并汇总各个单集群的流控采集器上的请求流量信息,将汇总的请求流量信息实时发送至流控协调器;
53.通过流控协调器对各单集群的流量总控单元进行纳管,多集群模式开启后,当app向单集群的流量总控单元发送请求流量信息,流量总控单元将请求流量信息直接转发至流控协调器,所述请求流量信息包括当前app每秒的请求次数;
54.通过流控协调器根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
55.在实际应用时,本实施例方法中,通过流控配置中心协调器将流控配置信息同步
至各单集群中的流控配置中心,包括:当各单集群中已经存在流控配置信息,通过流控配置中心协调器将具有最小的app每秒所允许的最大请求次数的流控配置信息同步至各个单集群进行覆盖。
56.在实际应用时,本发明方法中,通过流控协调器根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务,包括:当流控配置信息中app每秒所允许的最大请求次数不小于当前请求流量信息中app每秒的请求次数时,判定app可继续对外服务,当流控配置信息中app每秒所允许的最大请求次数小于当前请求流量信息中app每秒的请求次数时,判定app不可继续对外服务。
57.图2为根据本发明示例性第四实施例的一种微服务单集群流量控制系统的架构图,如图2所示,本实施例的系统,包括:
58.单集群协调模块,包括流控配置中心、流控采集器以及流量总控单元,其中,流控配置中心用于写入流控配置信息;流控采集器用于实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元;流量总控单元用于写入流控配置信息,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
59.图3为根据本发明示例性第五实施例的一种微服务多集群流量控制系统的架构图,如图3所示,本实施例的系统,包括:
60.单集群协调模块,包括流控配置中心、流控采集器以及流量总控单元,其中,流控配置中心用于写入流控配置信息;流控采集器用于实时采集并汇总app的不同服务实例的请求流量信息,将汇总的请求流量信息实时发送至流量总控单元;流量总控单元用于写入流控配置信息,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
61.多集群协调模块,包括流控配置中心协调器、采集协调器以及流控协调器,其中,流控配置中心协调器用于写入流控配置信息,将流控配置信息同步至各单集群中的流控配置中心;采集协调器用于实时采集并汇总各个单集群的流控采集器上的请求流量信息,将汇总的请求流量信息实时发送至流控协调器;流控协调器用于对各单集群的流量总控单元进行纳管,多集群模式开启后,根据流控配置信息和当前汇总的请求流量信息,判断app在当前流量情况下是否能继续对外服务。
62.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1