hzzhzzdogee
V2EX  ›  编程

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

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

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

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

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