更新时间:2021-08-13 10:52:58 来源:极悦 浏览706次
分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量。
通过购买性能更好的硬件来提升系统的并发处理能力,比方说目前系统 4 核 4G 每秒可以处理 200 次请求,那么如果要处理 400 次请求呢?很简单,我们把机器的硬件提升到 8 核 8G(硬件资源的提升可能不是线性的,这里仅为参考)。
使用缓存来提高系统的性能,就好比用“拓宽河道”的方式抵抗高并发大流量的冲击
在某些场景下,未处理完成之前我们可以让请求先返回,在数据准备好之后再通知请求方,这样可以在单位时间内处理更多的请求
什么是同步
以方法调用为例,同步调用代表调用方要阻塞等待被调用方法中的逻辑执行完成。这种方式下,当被调用方法响应时间较长时,会造成调用方长久的阻塞,在高并发下会造成整体系统性能下降甚至发生雪崩。
什么是异步
异步调用恰恰相反,调用方不需要等待方法逻辑执行完成就可以返回执行其他的逻辑,在被调用方法执行完毕后再通过回调、事件通知等方式将结果反馈给调用方
高并发原则
无状态设计:因为有状态可能涉及锁操作,锁又可能导致并发的串行化
保持合理的粒度:无论拆分还是服务化,其实就是服务粒度控制,控制粒度为了分散请求提高并发,或为了从管理等角度提高可操性
缓存、队列、并发等技巧在高并发设计上可供参考,但需依场景使用
高可用原则
本质诉求:高可用就是抵御不确定性,保证系统7*24小时健康服务
系统的任何发布必须具有可回滚能力
系统任何外部依赖必须准确衡量是否可降级,是否可无损降级,并提供降级开关
系统对外暴露的接口必须配置好限流,限流值必须尽量准确可靠
业务设计原则
安全性:防抓取,防刷单、防表单重复提交,等等等等。
at least 消费,应考虑是否采用幂等设计
业务流程动态化,业务规则动态化
系统owner负责制、人员备份制、值班制
系统文档化
后台操作可追溯
以上就是极悦小编介绍的"高并发系统设计方法",希望对大家有帮助,想了解更多可查看Java极悦在线学习。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习