本公开涉及分布式,更具体地涉及一种流量转发控制方法、装置、设备、介质和程序产品。
背景技术:
1、随着信息技术的不断推广应用,数据中心等后端服务系统内的流量请求大幅增加,对数据中心激增的流量进行合理的控制和分配是提高整个网络系统性能的关键,尤其是遇到短时间内高并发场景下,数据中心承担的流量会严重超载,容易造成流量堵塞,降低整个系统传输流量的可靠性和稳定性。因此,有必要在系统的入口处(诸如,网关、负载均衡设备或接口)进行流量的分配和限流。
技术实现思路
1、鉴于上述问题,本公开提供了一种基于pid控制器的流量转发控制方法。
2、本公开实施例的第一方面,提供了一种流量转发控制方法。所述流量转发控制方法包括:获取当前采样周期内接收到的外部网络请求的数量,得到第一请求数量;计算所述第一请求数量与预设值的差值;将所述差值输入pid控制器,以使所述pid控制器输出流量控制反馈信号;以及基于所述流量控制反馈信号,控制接下来的采样周期内允许向内部系统转发的外部网络请求的最大数量为第二请求数量。其中,所述第二请求数量属于以所述预设值为中点的预定区间;而且所述预定区间的上限小于或等于所述内部系统在一个采样周期内能够承受的最大请求数量。
3、根据被公开的实施例,在所述获取当前采样周期内接收到的外部网络请求的数量之前,所述方法还包括:设置所述pid控制器中的比例系数kp、积分系数ki和微分系数kd。
4、根据本公开的实施例,所述设置所述pid控制器中的比例系数kp、积分系数ki和微分系数kd包括:在模拟生产环境对所述内部系统的测试环境中,基于每个采样周期接收到的外部网络请求的数量与所述预设值的差值,按照预设策略不断调试所述比例系数kp、积分系数ki和微分系数kd,直到在连续的n个采样周期内允许向所述内部系统转发的外部网络请求的最大数量维持在所述预定区间内,其中,n为大于或等于2的整数。
5、根据本公开的实施例,所述基于每个采样周期接收到的外部网络请求的数量与所述预设值的差值,按照预设策略不断调试所述比例系数kp、积分系数ki和微分系数kd包括:在每个采样周期中的任意第一采样周期内,利用所述第一采样周期接收到的外部网络请求的数量减去所述预设值,得到所述差值;判断所述差值的正负和绝对值大小;当所述差值为负且所述差值的绝对值大于当前偏差阈值时,调大所述比例系数kp,其中,所述比例系数kp的调节步长与所述差值的绝对值正相关;其中,所述当前偏差阈值与所述第一采样周期在己发生的采样周期中的排序位置和/或所述第一采样周期内得到的所述差值相对于前一采样周期得到的所述差值的偏差程度相关;当所述差值为负但所述差值的绝对值小于当前偏差阈值时,调大所述积分系数ki,其中,所述积分系数ki的调节步长与所述差值的绝对值正相关;以及当所述差值为正时,调大所述微分系数kd,其中,所述微分系数kd的调节步长与所述差值的绝对值正相关。
6、根据本公开的实施例,在所述获取当前采样周期内接收到的外部网络请求的数量之前,所述方法还包括:通过测试得到所述内部系统在所述采样周期内能够承受的最大请求数量。
7、根据本公开的实施例,所述方法还包括:基于所述最大请求数量,设置所述预设值。
8、根据本公开的实施例,所述方法还包括:判断所述差值与可接受范围的关系,其中,所述可接受范围的长度小于所述预定区间的长度;以及当所述差值超出可接受范围时,将所述差值输入pid控制器。
9、根据本公开的实施例,所述计算所述第一请求数量与预设值的差值包括:当所述第一请求数量大于预设流量阈值时,计算所述第一请求数量与预设值的差值,其中,所述预设流量阈值小于所述预设值。
10、根据本公开的实施例,所述方法应用于分布式网关,其中,所述分布式网关包括至少一个子网关。
11、本公开实施例的第二方面,提供了一种流量转发控制装置。所述装置包括获取模块、计算模块、pid控制器和调整模块。获取模块用于获取当前采样周期内接收到的外部网络请求的数量,得到第一请求数量。计算模块用于计算所述第一请求数量与预设值的差值。pid控制器用于以所述差值为输入,输出流量控制反馈信号。调整模块用于基于所述流量控制反馈信号,控制接下来的采样周期内允许向内部系统转发的外部网络请求的最大数量为第二请求数量;其中,所述第二请求数量属于以所述预设值为中点的预定区间;而且所述预定区间的上限小于或等于所述内部系统在一个采样周期内能够承受的最大请求数量。
12、本公开实施例的第三方面,提供了一种电子设备。所述电子设备包括一个或多个处理器和存储器。所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述方法。
13、本公开实施例的第四方面,还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述方法。
14、本公开实施例的第五方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述方法。
15、上述一个或多个实施例具有如下优点或有益效果:通过pid控制器根据外部网络请求的数量和预设值的差异,控制向内部系统转发的外部网络请求的最大数量维持在预定区间内。这样通过对该预定区间的范围设置,不仅使得向内部系统转发的流量可以维持在内部系统能够承受的最大请求数量以内以避免流量阻塞宕机,而且还可以使向内转发的流量的波动程度可控,提高内部系统的负载稳定性。
1.一种流量转发控制方法,包括:
2.根据权利要求1所述的方法,其中,在所述获取当前采样周期内接收到的外部网络请求的数量之前,所述方法还包括:
3.根据权利要求1所述的方法,其中,所述方法还包括:
4.根据权利要求1所述的方法,其中,所述计算所述第一请求数量与预设值的差值包括:
5.根据权利要求1所述的方法,其中,在所述获取当前采样周期内接收到的外部网络请求的数量之前,所述方法还包括:
6.根据权利要求5所述的方法,其中,所述设置所述pid控制器中的比例系数kp、积分系数ki和微分系数kd包括:
7.根据权利要求6所述的方法,其中,所述基于每个采样周期接收到的外部网络请求的数量与所述预设值的差值,按照预设策略不断调试所述比例系数kp、积分系数ki和微分系数kd包括:
8.根据权利要求1~7任意一项所述的方法,其中,所述方法应用于分布式网关,其中,所述分布式网关包括至少一个子网关。
9.一种流量转发控制装置,包括:
10.一种电子设备,包括:
11.一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现权利要求1~8中任一项所述的方法。
12.一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器执行时实现权利要求1~8中任一项所述的方法。