从运维的角度看,一个可靠的如微信的 API 的基础架构应该怎么部署?

2021-05-06 14:31:35 +08:00
 saytesnake

就是类似于 https://api.weixin.qq.com/xxx,

目前我们这边仅用了 nginx,upstream 做负载均衡这样...调用量大了还是有些瓶颈。

有什么可以优化或改造的地方吗?

2077 次点击
所在节点    程序员
16 条回复
opengps
2021-05-06 14:40:54 +08:00
基础架构说的是服务器硬件?对于软件来说,能实现功能,数据库分流基本就没有大问题了
大型平台的承载力其实就是堆硬件,各种负载均衡,冗余,加速等产品的配合,后端 api 实际上未必稳定,只是因为服务器数量多了,出故障的会自动下线,大部分小故障没人会从外部发现而已
killva4624
2021-05-06 15:19:53 +08:00
API 这类架构基本没什么太多的变化吧?可以尝试拓宽一些别的思路,比如多地区、多地域均分负载,调用量大的时候动态调整后端 worker 数量。
rrfeng
2021-05-06 15:21:36 +08:00
『调用量大了还是有些瓶颈』

Nginx 是 7 层负载均衡,前面还得有 4 层负载均衡( LVS 之类的),再大还可以上 ECMP,再不行 Anycast 。
xuanbg
2021-05-06 15:33:50 +08:00
多级负载均衡啊。就和 3 楼说的,不行就加一级负载均衡。。。
x940727
2021-05-06 16:48:12 +08:00
NGINX 如果都有瓶颈的话就在前面加硬件负载呗,如果硬件负载都不够就去找运营商呗……如果嫌贵就找云商也行,阿里云的 SLB 价格还行
janxin
2021-05-06 16:51:31 +08:00
你要先看瓶颈在哪,所以监控一定要完善,一定程度上能发现问题在哪

然后就是看短板,根据短板上方案,上面都说了很多了
saytesnake
2021-05-06 17:13:54 +08:00
ch2
2021-05-06 17:49:34 +08:00
你都说了有瓶颈,那你说说瓶颈到底是啥
labulaka521
2021-05-06 18:53:52 +08:00
nginx ipvs dpvs dns 都往上整
zjyl1994
2021-05-06 19:27:50 +08:00
根据我在腾讯外包干过的经验,他们应对流量冲击的解决方法就是加机器,反正都是 TKE 的容器云可以随时扩缩。
真别想的太复杂,大公司就是加钱解决大部分问题
zjyl1994
2021-05-06 19:31:13 +08:00
而且,配合上对应的监控体系自动剔出死了的 pod 再拉起新的 pod,后端几百个实例里挂一两个重启需要 1 分多钟的容器前面根本感知不到。
hotsymbol
2021-05-06 23:52:57 +08:00
k8s + istlo + nginx
dallaslu
2021-05-07 11:24:22 +08:00
DNS 轮询用起来
kiotech
2021-05-07 13:50:35 +08:00
微信 API"可靠"的方式,也很简单粗暴。直接下架商家服务。先开枪,再提问题。
ychost
2021-05-07 14:36:00 +08:00
基本都是靠怼机器,真正稳定是数据库稳定就行了,上面运行的 API 业务逻辑正常就差不多了
cominghome
2021-05-08 16:48:18 +08:00
堆!机!器!
加!陪!置!

毕竟就算是代码有性能问题,宕机了锅还是得运维背

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

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

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

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

© 2021 V2EX