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

2020-07-14 21:48:36 +08:00
 yanshenxian

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

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

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

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

不是做后端的,所以只了解到这么多,还有别的点的话楼下补充吧 hhh 。
yanshenxian
2020-07-14 22:04:00 +08:00
@locoz dns 负载均衡是个好想法 ~
但是 dns 是不是会受到浏览器缓存的影响,如果一个网关挂了,用户还在使用缓存的结果导致请求失败
locoz
2020-07-14 22:10:25 +08:00
@yanshenxian #2 据我所知,在一个解析记录里有多个 IP 的情况下,如果第一个 IP 请求失败了,应用会自己再尝试第二个 IP 。具体这个重试机制是在哪一层做的、会不会有别的问题我就不清楚了,只是知道有这么个事。
40huo
2020-07-14 22:17:26 +08:00
LVS 四层负载均衡
opengps
2020-07-14 22:36:12 +08:00
常年帮用户上云,对这个问题总结的简略回复:
你需要学习的是负载均衡,参考阿里云 slb 帮助文档,再进一步了解下弹性伸缩 ess 。
实现了云架构之后,负载量就跟服务器数量成正比了,来的用户量大,只需要增加对应的服务器数量即可。ess 可以根据设定的监控指标自动增加机器数量
xuanbg
2020-07-15 08:57:25 +08:00
1 楼的方法是根据用户线路就近访问,一定程度上起到了负载均衡的作用。一般就是在网关前面放 Nginx 做负载均衡,根据 upstream iphash 转发到不同的网关。结合起来使用效果更佳
saltbo
2020-07-15 16:32:26 +08:00
基本就两种方案
1. 网关前面放一个四层的负载均衡
2. DNS 轮训

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/690059

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX