高并发系统技术实战经验总结

架构设计三个思维

合适即可

选择适合当前现状的,而不是追求最好的。合适也就是适应当前业务的要求是首位的,不要追求完美与过度设计。

针对合适原则,我们有几个考虑方向,人力资源、业务需求、公司资源几个角度考虑。

比如当前开发人员只有2个,那么能用单体就用单体架构,微服务都不需要用。

业务需求就是满足低频次的数据写入和读取,那么直接读数据库就好,缓存也不需要。

简单原则

依赖系统、组件越多,就越有可能某个组件出故障。

尽量减少服务调用链路 微服务架构已经不是什么新鲜事了,一次请求依赖几十个服务也不是没有可能,我们需要做的就是保证尽量少的依赖关系,模块之间的依赖关系应尽量减少,避免过多的依赖链条。

这样可以降低修改一个模块对其他模块造成的影响,提高系统的稳定性和可维护性。

在面对多种设计选择时,优先选择简单的解决方案。简单的解决方案往往更易于理解和实现,并且更不容易出错。

演化原则

唯一不变的就是变化,所有的系统,都不是一开始就是这样设计的,而是一步步演变来的。

迭代思维在架构设计中的应用可以体现在多个方面:

  1. 渐进式完善系统:架构设计不必一开始就完全确定所有细节,而是可以先设计一个初步的架构,然后通过迭代不断优化和完善。

  2. 快速验证想法:通过迭代,可以快速验证不同的架构想法和解决方案,从而找到最合适的方案。

  3. 及时反馈和调整:迭代过程中可以及时获取用户和利益相关者的反馈,从而及时调整架构设计,保证系统的实际需求和预期一致。

系统背景

业务背景

某大型促销活动系统,展示不同的活动页面,属于CPU密集型服务,读多写少,主要提供了页面数据获取。

(针对于高并发写,有机会的话,下次再说吧。)

指标评估

系统用户数 假设注册用户1亿人。 活跃用户数 日活按照注册用户的10%,有1000w人。 目标用户数 促销活动,只针对部分用户生效,可能我们目标是覆盖到100w人。 并发用户数 100w人是我们期望覆盖的用户数量,中间会产生一些折损,而且这部分人也不会同一时间访问我们的系统。我们假设并发用户数为10w人。

因此,我们估算指标如下: 峰值QPS10w+,平均RT:200-300ms

设计思路

扩展能力

设计思路的第一点,就是系统要具有扩展的能力,扩展又分为垂直和水平两种。

垂直扩展

一类是传统大型软件系统的技术方案,被称作垂直伸缩方案。所谓的垂直伸缩就是提升单台服务器的处理能力,比如用更多核的 CPU、更大的内存、更快的网卡、更多的磁盘组成一台服务器,从普通服务器升级到小型机,从小型机提升到中型机,从中型机提升到大型机,从而使单台服务器的处理能力得到提升。通过这种手段提升系统的处理能力。

水平扩展

第二类就是水平扩展方案,不用更厉害的硬件,而使用更多的服务器,来构建成一个分布式集群,以此提升整体能力。

水平扩展其实也是随着互联网应用场景必备的解决方案,因为你没法预估有多少人来访问你的系统,或者在一些促销活动时,会有多少倍的流量增加。

简单来说,假设在4c8g(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔向理想的星辰大海

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值