MelodYi
2024-05-28 09:11:45 +08:00
限流大多在广义的“服务端”。熔断大多在广义的“客户端”。
限流简单举例就是令牌桶,过量的请求过来就直接拒绝。
如果是对 app 、浏览器要访问的接口限流,一般就做在网关层(对浏览器来说,网关就是服务端)。
服务间调用的时候,被调用的服务(服务端)也可以做限流;或者被网关调用的服务,自己也可以做限流(对网关来说,被调用服务是服务端)。
熔断一般是在客户端视角的,检查服务端正不正常,在有多个服务端可选的情况下,只调功能正常的、不去调有异常的服务端。对 app 、浏览器来说,服务端就一个域名,大概率也就一个 ip ,一般不做熔断(熔断了就把整个服务端干掉了)。
微服务一般有多副本,直接访问微服务的“客户端”可以做熔断。
比如网关对后端服务来说是客户端,网关可以做熔断。
后端服务间调用,调用方是客户端,调用方也可以做熔断。
具体要不要配熔断,要不要限流。看业务实际情况,感觉没一个特别固定的方法论。