专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 高并发系统设计方法

高并发系统设计方法

更新时间:2021-08-13 10:52:58 来源:动力节点 浏览639次

Scale-out(横向扩展)

分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量。

Scale-up(纵向扩展)

通过购买性能更好的硬件来提升系统的并发处理能力,比方说目前系统 4 核 4G 每秒可以处理 200 次请求,那么如果要处理 400 次请求呢?很简单,我们把机器的硬件提升到 8 核 8G(硬件资源的提升可能不是线性的,这里仅为参考)。

高并发系统设计方法

缓存

使用缓存来提高系统的性能,就好比用“拓宽河道”的方式抵抗高并发大流量的冲击

异步

在某些场景下,未处理完成之前我们可以让请求先返回,在数据准备好之后再通知请求方,这样可以在单位时间内处理更多的请求

什么是同步

以方法调用为例,同步调用代表调用方要阻塞等待被调用方法中的逻辑执行完成。这种方式下,当被调用方法响应时间较长时,会造成调用方长久的阻塞,在高并发下会造成整体系统性能下降甚至发生雪崩。

什么是异步

异步调用恰恰相反,调用方不需要等待方法逻辑执行完成就可以返回执行其他的逻辑,在被调用方法执行完毕后再通过回调、事件通知等方式将结果反馈给调用方

指导原则

高并发原则

无状态设计:因为有状态可能涉及锁操作,锁又可能导致并发的串行化

保持合理的粒度:无论拆分还是服务化,其实就是服务粒度控制,控制粒度为了分散请求提高并发,或为了从管理等角度提高可操性

缓存、队列、并发等技巧在高并发设计上可供参考,但需依场景使用

高可用原则

本质诉求:高可用就是抵御不确定性,保证系统7*24小时健康服务

系统的任何发布必须具有可回滚能力

系统任何外部依赖必须准确衡量是否可降级,是否可无损降级,并提供降级开关

系统对外暴露的接口必须配置好限流,限流值必须尽量准确可靠

业务设计原则

安全性:防抓取,防刷单、防表单重复提交,等等等等。

at least 消费,应考虑是否采用幂等设计

业务流程动态化,业务规则动态化

系统owner负责制、人员备份制、值班制

系统文档化

后台操作可追溯

以上就是动力节点小编介绍的"高并发系统设计方法",希望对大家有帮助,想了解更多可查看Java在线学习。动力节点在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>