gpt4 book ai didi

guava - 如何实现分布式限速器?

转载 作者:行者123 更新时间:2023-12-03 22:36:34 24 4
gpt4 key购买 nike

假设,我有 P 个进程在 N 台物理机上运行一些业务逻辑。例如,这些进程调用一些 Web 服务 S。我想确保所有 P 进程组合起来每秒对服务 S 进行的调用不超过 X 个。

如何实现这样的解决方案?

Google Guava 的 Rate Limiter 适用于在单个机器上运行的进程,但不适用于分布式设置。

是否有任何标准的、随时可用的 JAVA 解决方案? [可能基于zookeeper]

谢谢!

最佳答案

Bucket4j是“token-bucket”限速算法的java实现。它可以在本地和分布式(在 JCache 之上)工作。对于分布式用例,您可以自由选择任何 JCache 实现,例如 Hazelcast 或 Apache Ignite。见 this example在集群中使用 Bucket4j。

关于guava - 如何实现分布式限速器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com