在多台服务器分布在世界各地不同地区的情况下,为每台服务器实施速率限制器将导致两个主要问题:
- 不一致
- 竞争条件
在本文中,我们将探讨这两个主要问题,以及我们如何实施更好的策略来解决 分布式系统 的这些问题。
不一致
根据定义,当一组指令、规则或过程在呈现几个迭代的最终结果时彼此不一致时,就会发生计算系统中的不一致。对于计算机科学的不同领域,可以以不同的方式定义不一致。
速率限制器的不一致是当服务器端在很短的时间内收到大量来自客户端的不间断请求时出现的问题。如果服务器端要接收来自多个客户端的多个请求,服务器端的速率限制器仍然会超过其限制。
竞争条件
根据定义,当系统试图在一个时钟周期内处理两个或多个操作时,计算系统中的竞争条件就会发生,这实际上必须按顺序完成。
速率限制器中的竞争条件是当来自客户端的多个请求尝试访问服务器端的速率限制器并增加其计数时出现的问题。通常,速率限制器上的计数器的递增发生在两步过程中,实际上必须按顺序完成。
首先,请求读取当前计数器值。其次,它增加计数器值,然后将其写入速率限制器的计数器。
在单个请求的读取和写入操作之间,多个同时写入操作会导致其他传入请求的读取操作不正确。