初探架构 | 青训营笔记

48 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

作业

作业借鉴了ppt中的架构,增加了节日激励.

  • 我认为节日激励是每隔较长一段时间发生一次的活动,所以从冷存里拿数据,比较全面的分析.当然这无疑是一个离线的任务,可以和在线任务合并在同一个容器中,提高设备利用率.

  • 另外,由于需要多端支持(微信/支付宝小程序/App/网页),而不同来源的表单数据必然有所区别,所以先使用一个中间件统一数据格式.

作业图片如下: image.png

C10K

C10K问题,本质上是操作系统的问题。对于Web1.0/2.0时代的操作系统而言, 传统的同步阻塞I/O模型都是一样的,处理的方式都是requests per second,并发10K和100的区别关键在于CPU

创建的进程、线程多了,数据拷贝频繁(缓存I/O、内核将数据拷贝到用户进程空间、阻塞), 进程/线程上下文切换消耗大, 导致操作系统崩溃,这就是C10K问题的本质. 解决C10K问题的关键就是:尽可能减少CPU等核心资源消耗,从而榨干单台服务器的性能,突破C10K问题所描述的瓶颈。

总结

没有最好的架构,只有最合适的架构.做架构设计,先从需求出发。要满足什么样的需求?预期规模有多大?做足够的业界调研。业界对于类似的需求是怎么做的?有无成熟的方案可以借鉴?直接拿来用有什么问题? 技术选型。涉及的技术组件是自研,还是使用开源的?异常情况。任何时候,都不能做『输入合法』的假设。容灾能力一定要有.

学好架构,是工程师成长的一个重要标志,早日从晋升高工,冲击架构师.