V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yanshenxian
V2EX  ›  程序员

求解 api 网关本身扩容是怎么运行的

  •  
  •   yanshenxian · 2020-07-14 21:48:36 +08:00 · 1597 次点击
    这是一个创建于 1587 天前的主题,其中的信息可能已经有所发展或是发生改变。

    单个网关下可以负载均衡多个 upstream service 这个好理解

    但是如果存在多个网关节点,用户流量是怎么负载上去的呢

    网关节点可以动态扩容吗?还是说网关就是不可变的?

    7 条回复    2020-07-15 16:32:26 +08:00
    locoz
        1
    locoz  
       2020-07-14 21:56:48 +08:00 via Android   ❤️ 1
    我的理解是多个网关前面也会有个负载均衡措施,比如按照地域划分、按照运营商划分。
    简单粗暴点的实现方式就是在 DNS 记录里直接写上多个 IP,现在 DNS 解析服务商基本都支持按地域和运营商区分不同的解析结果。在这个基础上做动态扩容也是一样的,就是在 DNS 解析里加 IP 。
    然后普通的 DNS 又会有实时性问题,所以如果要高实时性的话又可以加个 HTTP DNS 。

    不是做后端的,所以只了解到这么多,还有别的点的话楼下补充吧 hhh 。
    yanshenxian
        2
    yanshenxian  
    OP
       2020-07-14 22:04:00 +08:00
    @locoz dns 负载均衡是个好想法 ~
    但是 dns 是不是会受到浏览器缓存的影响,如果一个网关挂了,用户还在使用缓存的结果导致请求失败
    locoz
        3
    locoz  
       2020-07-14 22:10:25 +08:00 via Android
    @yanshenxian #2 据我所知,在一个解析记录里有多个 IP 的情况下,如果第一个 IP 请求失败了,应用会自己再尝试第二个 IP 。具体这个重试机制是在哪一层做的、会不会有别的问题我就不清楚了,只是知道有这么个事。
    40huo
        4
    40huo  
       2020-07-14 22:17:26 +08:00   ❤️ 1
    LVS 四层负载均衡
    opengps
        5
    opengps  
       2020-07-14 22:36:12 +08:00 via Android
    常年帮用户上云,对这个问题总结的简略回复:
    你需要学习的是负载均衡,参考阿里云 slb 帮助文档,再进一步了解下弹性伸缩 ess 。
    实现了云架构之后,负载量就跟服务器数量成正比了,来的用户量大,只需要增加对应的服务器数量即可。ess 可以根据设定的监控指标自动增加机器数量
    xuanbg
        6
    xuanbg  
       2020-07-15 08:57:25 +08:00
    1 楼的方法是根据用户线路就近访问,一定程度上起到了负载均衡的作用。一般就是在网关前面放 Nginx 做负载均衡,根据 upstream iphash 转发到不同的网关。结合起来使用效果更佳
    saltbo
        7
    saltbo  
       2020-07-15 16:32:26 +08:00
    基本就两种方案
    1. 网关前面放一个四层的负载均衡
    2. DNS 轮训
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   913 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:28 · PVG 06:28 · LAX 14:28 · JFK 17:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.