我有一个场景,我的微服务被缩放到3个实例。每项服务都会对第三方服务进行http调用。但是,第三方服务具有速率限制,即它不能接受每秒超过1000个请求。现在我有3个相同服务的实例运行很难跟踪计数。任何可以帮助我实现这个的解决方案吗?
答案 0 :(得分:0)
在这种情况下,您可以使用Circuit Breaker模式和工具,例如Hystrix。
答案 1 :(得分:0)
我的回答是基于以下假设:每项服务都是独立的,不会互相影响,可能会放大或缩小。
使用 Redis数据缓存服务,在那里引入变量。每个服务都能够引用该变量,并且会在他们进行API调用时进行更新,写入某些条件,这样,如果该服务在特定秒数内达到1000,则不允许进行调用。
因此,他们每秒钟无法拨打超过1000个电话。