【发布时间】:2018-01-28 00:01:57
【问题描述】:
我有一个场景,我的微服务扩展到 3 个实例。每个服务都会对第三方服务进行 http 调用。但是,第三方服务有速率限制,即每秒不能接受超过 1000 个请求。现在我有 3 个相同服务的实例运行它很难跟踪计数。有什么解决方案可以帮助我实现这一点?
【问题讨论】:
标签: spring http microservices rate-limiting
我有一个场景,我的微服务扩展到 3 个实例。每个服务都会对第三方服务进行 http 调用。但是,第三方服务有速率限制,即每秒不能接受超过 1000 个请求。现在我有 3 个相同服务的实例运行它很难跟踪计数。有什么解决方案可以帮助我实现这一点?
【问题讨论】:
标签: spring http microservices rate-limiting
在这种情况下,您可以使用Circuit Breaker 模式和Hystrix 等工具。
【讨论】:
我的回答是基于这样的假设:每个服务都是独立的并且不相互交互并且可能会放大或缩小。
使用Redis数据缓存服务,在里面引入一个变量。每个服务都将能够引用该变量,并在他们进行 API 调用时进行更新,编写一些条件,以便在特定秒内达到 1000 时不允许任何服务进行调用。
因此他们将无法每秒拨打超过 1000 个电话。
【讨论】: