hzzhzzdogee
V2EX  ›  编程

微服务之间互相调用是通过网关还是直接 rpc?

  •  
  •   hzzhzzdogee · Apr 24, 2022 · 2258 views
    This topic created in 1495 days ago, the information mentioned may be changed or developed.
    二者各有什么优劣呢?
    5 replies    2022-04-25 17:24:03 +08:00
    Sezxy
        1
    Sezxy  
       Apr 24, 2022 via Android
    内部服务间调用就直接吧,给外部用的可以接网关
    FabricPath
        2
    FabricPath  
       Apr 24, 2022
    随便列一下,

    网关的问题:
    1. 网关出 Bug 、被打爆 所有服务全无
    2. 网关在逻辑增加了一跳路径,降低稳定性
    3. 网关不是单纯的网关,如果是 DNS+VIP 的方式访问网关,那在网络层也需要 L4 接入,L4LB 是 ecmp 发布的路由,扩缩容时会损失部分连接(除非做了 session 同步,这个坑更多),所以在物理层面实际上增加了两跳
    4. 为了避免 3 中 L4LB 带来的缺陷,需要采用服务发现去发现网关实例,那为啥不直接发现下游实例呢?

    优势:
    1. 服务治理(含风控等所有通用功能)好做,功能迭代在网关上

    综上:
    1. 入口服务使用网关做接入,内部 RPC 调用上 ServiceMesh
    winglight2016
        3
    winglight2016  
       Apr 24, 2022
    @Goooooos 直接调用是怎么实现?服务调用地址怎么维护?手动去 nacos 查询?
    tedzhou1221
        4
    tedzhou1221  
       Apr 25, 2022 via iPhone
    @winglight2016 你说的这个是注册中心干的活
    winglight2016
        5
    winglight2016  
       Apr 25, 2022
    @tedzhou1221 gateway 可以帮你使用 lb://aliasname/这样格式,转发访问其他微服务,不然就只能自己去 nacos 更新访问地址,这事儿有点麻烦。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1026 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 19:01 · PVG 03:01 · LAX 12:01 · JFK 15:01
    ♥ Do have faith in what you're doing.