作者alihue (wanda wanda)
看板Soft_Job
标题Re: [请益]高流量网站和资料结构
时间Sun Aug 22 15:54:24 2021
高流量应用 你没定义好需求根本无法讨论怎麽设计
1. 资料一致性要求? 持久性要求?
如果一定要用到交易,基本上一致性和持久性就一定要,
就直接用掉 CAP 定理的 Consistency,算是最常见的瓶颈
2. 如果是写 log 系统,这种 QPS 要破万比网站容易多了,也很常见
在台湾,台面下 QPS 破万的 log 系统应该比台面上的"网站"多
但这种系统通常送出 request 就不理他了,
因此後端可以用 kafka 之类的大量接收 至於要怎麽写 log 与写到哪 (通常是 HDFS)
是另一段需求
3. 如果一致性不重要,基本上就尽量设计成可以无脑 Scale out
但如果系统有做 sharding,那 Scale out 的数量非常惊人,
因此如何撑爆单台的资源就变得重要
4. 根据情境,还需要判断 bare metal server 的重要性。
例如你程式用到 file system cache 等
5. 事情没这麽单纯,还有 latency/SLA 要求,如 95% percentile < 100ms 等
6. 外加 request payload 大小多大
7. 其实这些系统会再划分好几个子团队,例如搞 storages、搞整合(dependencies)测试
真正搞大流量设计的是核心中的核心
其中因为系统通常包含非常多 components,整合测试规模可能会很复杂
我觉得还有很多我没列到的 毕竟大流量系统的情境多元,
即使同样的需求,不同团队讨论出的设计也不尽相同
因此在讨论"大流量"没先说好需求,那讨论基本上会过於发散
如果你是静态网站 那就 CDN 设好就能撑 QPS 一万惹
要进大流量系统的团队 不一定要需要先做过
即使考系统设计 也只是想知道你对於每个 Componennt 抉择的逻辑合理性
实务上设计因为需求会更 tricky
因此建议:
a. 基本知识弄好: OS 演算法 资料结构 multithreads 写程式基本功
语言也要够深,知道怎麽做 Memory/CPU profiling
如果有用到如 JVM 的技术,也要知道 GC 演算法与怎麽分析与调整参数
b. 找出大流量团队在哪,不是你进 google 就能搞这个
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 106.73.26.66 (日本)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1629618866.A.67F.html
※ 编辑: alihue (106.73.26.66 日本), 08/22/2021 15:56:03
1F:→ alihue: 补充,以购物网站就有不同的流量主题:搜寻 订单成交 商08/22 16:05
2F:→ alihue: 品库存 推荐系统 使用者前端log08/22 16:05
3F:嘘 jason2641668: 有没有经验啊 静态网站QPS才1万08/22 16:05
5F:→ jason2641668: 随便挑台大学维护的系网站压一下08/22 16:08
6F:→ jason2641668: 这样都能发文哦08/22 16:09
7F:嘘 jason2641668: 真的完全在打脸自己基本功的部份08/22 16:11
8F:→ jason2641668: 系网站不是商用机器 一般pchome买的到的commodity08/22 16:13
https://i.imgur.com/lw1Ig63.jpg
※ 编辑: alihue (106.73.26.66 日本), 08/22/2021 16:14:02
9F:→ FlowerKnight: Lushen人格跑出来了08/22 16:32
10F:→ brucetu: 请问jason大大的系网站每个request是多少流量?08/22 16:56
※ 编辑: alihue (106.73.26.66 日本), 08/22/2021 17:07:32
11F:推 acgotaku: 推 一致性的问题真的是高并发的难题08/22 17:39
12F:推 drajan: HDFS? 直接放到S3不是更简单?08/22 17:39
update. 查了一下同样用途 s3 也做得到,选择细节就看各 team
不过大公司还是会想要弄自己私有云
13F:推 MoonCode: QPS 还要看同时连线数量吧?你单机可以模拟十万个 tcp 08/22 18:17
14F:→ MoonCode: connection? 08/22 18:17
15F:推 MoonCode: Lushen 是谁08/22 18:25
16F:→ alihue: 你捅过的乡民,只是 ip 刚好跟 jason 一样08/22 18:28
17F:推 MoonCode: 你认错人了我不是版主08/22 18:30
※ 编辑: alihue (106.73.26.66 日本), 08/22/2021 18:31:33
18F:→ alihue: 抱歉 认错人 08/22 18:32
19F:→ MoonCode: 对了 我好奇 jason 是测试哪个网站 我可以用 wrk -t1 08/22 18:32
20F:→ MoonCode: -c10000 -d180 跑跑看08/22 18:32
21F:→ sammythekid: 但後续资料整合就知道了。目前就在收s3的锅08/22 20:17
※ 编辑: alihue (106.73.26.66 日本), 08/22/2021 20:47:59
※ 编辑: alihue (106.73.26.66 日本), 08/23/2021 06:23:26
22F:推 GGFACE: ............. 08/23 10:34