真·百万并发的业务,是如何部署实现均衡负载的?

2020-03-21 22:07:45 +08:00
 black11black

如题,很惭愧我没有部署过这种业务,纯粹想了解学习一下。

根据舅舅党的消息,19 年双 11 淘宝峰值 qps 在 340 万左右,考虑到支付宝的 query 逻辑还相当复杂,我是感觉挺人类奇迹的,那么到底是如何实现的呢?

按照我粗浅的推测,我感觉均衡负载目前可以分几个层级(暂不考虑 CDN,只考虑源服务器,以我粗浅的知识不太清楚这种有回源的服务挂 CDN 最终能否达到加速效果),

=====================================================================

大佬给开开眼,想见识一下真正的工业前沿高科技是啥样的

8125 次点击
所在节点    Java
49 条回复
lewis89
2020-03-22 10:59:53 +08:00
@lihongming #9 秒杀其实根本不是一个技术问题,稍微有点脑子的程序员直接给你 return 掉了 谁还给你去查 redis 不是老子有病,然后放几个随机数,成功的让它的订单走过去 然后改个状态
paoqi2048
2020-03-22 11:44:29 +08:00
分就完事了
xuanbg
2020-03-22 11:46:55 +08:00
@lewis89 没错,秒杀和高并发压根就八竿子打不着,还有瞬间峰值也是,拿 MQ 做个缓冲池就解决了。

高并发场景都是非常特殊的,各有各的解决方案,看别的人的方案最多起一个参考作用,没有一家是能照搬的。
xuanbg
2020-03-22 11:52:32 +08:00
@9 别人的经验没用的,大家都知道分流,但这就是正确的屁话。真正的问题从来就不是怎么分流,而是分流后产生的问题要怎么去解决。那些分享从来都只会说我们如何分流,不会告诉你分流产生了什么问题。其实也很容易理解,因为分流后的问题大家都不一样,你说自家特有的东西,别人也没兴趣听。
salmon5
2020-03-22 11:59:07 +08:00
这个问题首先要考虑的是一个字:钱;
上万人的工资;
上百万台的服务器、存储、路由、交换、防火墙硬件。
你算算这 2 个多少钱。
andynet
2020-03-22 12:03:42 +08:00
然后可以看一下 google 出的 SRE 那本书 里面有一些设计思路可以参考
然后就是 现在的很多公司对分布式都会过度构架,还是那句话 构架需要演进,到那步就部署适应的构架。
OneMan
2020-03-22 12:05:38 +08:00
从基础来,不要一下就想造个战斗机,先弄个模型飞机能飞起来就不错了
black11black
2020-03-22 12:07:28 +08:00
@lasuar 大佬回复靠谱,能感觉到一个成熟模型了
black11black
2020-03-22 12:12:20 +08:00
@xuanbg 你这回复了一长串没有任何建设性意义啊,没有谁生而知之的,总归是共同讨论共同进步,你说我不懂我确实也没架过这种业务,但我想了解一下总不能说是就犯罪了吧。如果是建设性讨论,比如你可以指出来我高并发场景理解错误,重点不在并发 IO 而在于虚拟数据库,或者在一致性。你这写了一长串总结出来就是“你不懂,说了你也听不懂”,有个啥用
reeco
2020-03-22 12:26:49 +08:00
淘宝那鬼代码看过你们就明白了,也是很多屎山在里面,没人敢动
reeco
2020-03-22 12:30:37 +08:00
部署架构的两个关键字: 单元化、异地多活,应该都能搜到不少东西
Lonely
2020-03-22 13:01:08 +08:00
@areless 你就一台服务器去抗?
ceyes
2020-03-22 15:26:47 +08:00
关键字:c10k 问题,可以研究一下。
losephsky
2020-03-22 15:40:09 +08:00
许式伟的架构课有一章就讲到高并发的负载均衡,推荐你去看看
neoblackcap
2020-03-22 16:22:39 +08:00
@black11black 理论上是你也只能根据网上分享出去面试吹水,然而真正的大厂面试官面对你吹这些,立刻就会打脸,还不如不吹。所谓经历过百万并发的人,在中国也屈指可数,v2ex 上面大部分的程序员都没有这样的经验。这根本就是屠龙技。哪怕腾讯那样的企业,一般人是不可能允许你去写对应的代码的。
了解一下是可以的,不过百万并发是一个非常空泛的议题。长连接跟短连接都不一样。游戏的百万在线,跟网页的百万并发浏览,整个逻辑思路可能都不一样。
当然大家都会在说分流,但是不同的业务会导致不同的资源需求。真正经历过百万并发的人或者架构师是需要深入业务,评估资源的需求。不是一句简简单单的加机器,上商用软硬件就可以打发过去的。没有实际的业务场景,理论简直是空中楼阁。当然你有这样的问题,恭喜你,你很可能在一家朝阳企业。
marcoxuu
2020-03-22 16:25:33 +08:00
阿里出过一本书叫做《逆流而上-阿里巴巴技术成长之路》介绍了 lz 主题中提到的几个问题
dreamusername
2020-03-22 16:41:05 +08:00
阿里云 SLB 负载均衡单条最高 100 万并发,后面使用 Kubernetes,服务性能不够,数量来凑,这样百万并发就出来了.
SLB 前面再使用 WAF DNS,几百万就出来了。
God365
2020-03-22 17:49:49 +08:00
@andynet 现在的很多公司对分布式都会过度构架,还是那句话 构架需要演进,到那步就部署适应的构架。
非常同意,适合当前阶段和规模就是最好的,构架需要根据业务增长演进
qiyuey
2020-03-22 18:18:48 +08:00
去 HTTP 化,分布式 MTOP
xuanbg
2020-03-22 20:45:02 +08:00
@black11black 你理解的“你不懂,说了你也听不懂”并没错,但这个并不是我傲慢、不愿意分享或者看不起人。有些东西没有经历过就是理解不了,也很难描述,百万级并发恰好就属于这个范畴。做过的人都不会认为搞定这个是掌握了什么高大上的知识,而仅仅是一些令人焦头烂额的各种尝试和妥协罢了。这种经验没有复制的价值,也并不值得炫耀。当然,也不值得学习。

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

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

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

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

© 2021 V2EX