可扩展性、容量和高并发,它们是什么关系?

29d499ee90a07ee6ab237619f596e02d.png

可扩展性包含功能扩展和容量扩展。功能扩展主要是两点:预测变化、封装变化。封装变化的手段比如运用设计模式。容量扩展先从容量本身说起。

7eb0247d0fc42b7c549ba35b44ccb51a.png

因为业务容量包含数据量和并发量两方面。所以本质上高并发问题是容量问题的一个方面。容量要可衡量、可观测、可应对

可衡量是指业务容量水位(业务负载/业务容量)要维持在合理的范围,手段主要是压测和监控。

可观测主要靠容量大盘等可视化手段和容量巡检。

可应对的手段分为两方面,一方面是容量防御,另一方面是容量扩展。容量防御方面的手段比如:隔离、混部、流控、熔断和降级。先让系统柔性地提供服务,争取一个扩容的时间。

容量扩展又可以分为单机扩展和集群扩展。

单机扩展除了增加CPU、内存等物理扩展手段之外,还可以通过加速和增加吞吐量技术常用的比如:CDN加速、缓存、JVM调优、SQL优化、还可以考虑使用webflux等响应式编程框架提高并发量。

集群扩展主要遵循 AKF 扩展立方。X 轴水平扩容,Y 轴垂直领域拆分扩容,Z 轴按一定的算法规则扩容。

X轴主要手段对数据库来说有分库分表,对应用来说要无状态化来支持水平扩展;Y 轴架构拆分的常用技术比如:DDD四层架构、六边形架构、微内核架构,还有像k8s架构那种基于角色的拆分;还有异步化,基于事件驱动来分阶段处理;读写分离;冷热分离;Z 轴拆分比如单元化。

思考:

下面利用本期知识点来思考一个问题:如何确定系统的最佳线程数?

下期给出我的回答。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值