我正在构建一个 Web 服务,它每天为不同的注册用户回答特定数量的请求。每个用户都有一个每日配额,所以我需要满足这些限制。
我计划通过以循环方式添加更多服务器和负载平衡来水平扩展它。
我将拥有一个具有分布式计数器的分布式数据库。该数据库将用于仅报告每天的计数。
服务器每秒将处理 2 到 3k 个请求。因此,他们在为每个请求提供服务时需要最新的已用完配额的计数,以免超出配额。
我想防止来自每台服务器的任何进程外调用,以便服务请求的延迟很低。
我一直在考虑在所有服务器之间划分配额并在内存中维护每个服务器的配额约束。但是我将如何处理服务器故障,重新启动?
是否最好在进程外进行,例如从每台服务器通过网络查询另一个数据库?我观察到的是,在这种情况下延迟会急剧增加。
请告知我是否朝着正确的方向前进?