在高并发系统中控制流量非常重要。当直接从我们的服务器请求大流量时,该接口可能不可用。如果未处理,则可能无法使用该应用程序。
例如,最近需要这种类型。作为客户,我想生产数据卡夫卡,以及消费者卡夫卡继续不断地使用数据,以及所有的消费数据被请求的Web服务器,即使负载结束(4 Web服务器),但业务的数据量也巨大的,每秒可能会产生数万个数据。如果生产者直接生成数据,则很可能是您拖动Web服务器。
在这种情况下,有必要在电流限制的执行处理,并产生一定量的每秒的数据到卡夫卡的,从而保证网络的正常运行很大。
实际上,无论处理何种类型的场景,其实质都是降低交通保障应用的高可用性。
常用算法
有两种常见的电流限制算法。:
漏洞立方体算法
芯片立方体算法
泄漏的比色杯算法相对简单,即,流体被放置在比色皿中,并且泄漏的比色皿也以一定的速率向外流动。如果流量太快,它将溢出(漏桶不会增加退出率)。直接丢弃溢出的流量。
这很简单粗鲁。
即使泄漏立方体算法很简单,它也无法应对真实场景,例如突然的流量突发。
然后,您需要使用令牌多维数据集算法:
令牌桶将以恒定速度将令牌置于固定容量中,并且在有流量时将占用一个或多个令牌。当存储库中没有选项卡时,将丢弃或阻止当前请求。
相比之下,芯片立方体可以处理一定的流量突发。