微服务体系下,限流和熔断分别在哪里发挥作用? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mangojiji

微服务体系下,限流和熔断分别在哪里发挥作用?

  •  
  •   mangojiji 2024 年 5 月 27 日 1320 次点击
    这是一个创建于 697 天前的主题,其中的信息可能已经有所发展或是发生改变。
    限流只在网关做吗?
    熔断在每个服务上都做,还是只在网关做呢?
    各个服务需要限流吗?
    4 条回复    2024-05-28 11:46:17 +08:00
    MelodYi
        1
    MelodYi  
       2024 年 5 月 28 日
    限流大多在广义的“服务端”。熔断大多在广义的“客户端”。

    限流简单举例就是令牌桶,过量的请求过来就直接拒绝。
    如果是对 app 、浏览器要访问的接口限流,一般就做在网关层(对浏览器来说,网关就是服务端)。
    服务间调用的时候,被调用的服务(服务端)也可以做限流;或者被网关调用的服务,自己也可以做限流(对网关来说,被调用服务是服务端)。

    熔断一般是在客户端视角的,检查服务端正不正常,在有多个服务端可选的情况下,只调功能正常的、不去调有异常的服务端。对 app 、浏览器来说,服务端就一个域名,大概率也就一个 ip ,一般不做熔断(熔断了就把整个服务端干掉了)。
    微服务一般有多副本,直接访问微服务的“客户端”可以做熔断。
    比如网关对后端服务来说是客户端,网关可以做熔断。
    后端服务间调用,调用方是客户端,调用方也可以做熔断。

    具体要不要配熔断,要不要限流。看业务实际情况,感觉没一个特别固定的方法论。
    yty2012g
        2
    yty2012g  
       2024 年 5 月 28 日
    限流是入口做,熔断是出口做。每个服务都有入口和出口,每个系统也有入口和出口。一般来说,网关是需要有限流的,每个服务自己最好也做限流。每个服务调用其他的服务可以做熔断,为了保护对方/自己
    mangojiji
        3
    mangojiji  
    OP
       2024 年 5 月 28 日
    @MelodYi 想问下 Hystrix 在单个服务多个实例的情境下,如何做限流和熔断呢?是不是不适用于此类场景?
    MelodYi
        4
    MelodYi  
       2024 年 5 月 28 日
    @mangojiji 你是说你的微服务,整个大项目,只有一个服务?
    那是个啥微服务,不就是个 spring web 么(当然你也确实可以说,这是一个微服务)。

    你还是参考这个服务端、客户端的概念就好。如果你的微服务从来不调用外部,那就只是服务端的身份,不会有作为客户端的身份。那这个服务本身只需要考虑限流问题就行了。

    如果你还有网关,网关后面仅一个服务。那这个服务上我觉得限流意义也不大。
    过量的流量让网关先抗住更合理些。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2878 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 58ms UTC 07:34 PVG 15:34 LAX 00:34 JFK 03:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86