美文网首页
高并发系统的三大设计方案

高并发系统的三大设计方案

作者: 兮兮码字的地方 | 来源:发表于2019-10-07 12:49 被阅读0次

听过太多有关高并发的技术,例如:消息队列,负载均衡,缓存中间件,数据库一主多从,降级,限流等。有关高并发的解决方案和知识也十分庞杂。

但本质上,高并发的通用设计方案一共就三类。横向扩展、缓存、异步。

1.Scale-out(横向扩展):分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量。

我们在高并发系统设计上把类似追逐摩尔定律不断提升 CPU 性能的方案叫做 Scale-up(纵向扩展),把类似 CPU 多核心的方案叫做 Scale-out,这两种思路在实现方式上是完全不同的。         
Scale-up:通过购买性能更好的硬件来提升系统的并发处理能力,比方说目前系统 4 核 4G 每秒可以处理 200 次请求,那么如果要处理 400 次请求呢?很简单,我们把机器的硬件提升到 8 核 8G(硬件资源的提升可能不是线性的,这里仅为参考)。
Scale-out:则是另外一个思路,它通过将多个低性能的机器组成一个分布式集群来共同抵御高并发流量的冲击。沿用刚刚的例子,我们可以使用两台 4 核 4G 的机器来处理那 400个请求。

2.缓存:为什么使用缓存可以提高系统的访问性能,这是因为数据都是持久化存储的,我们一般都使用磁盘作为存储介质,而在计算机体系中,磁盘是最慢的一环,甚至相比其他存储介质要慢几个数量级,所以通常我们使用内存作为存储介质的缓存来大幅提高访问性能。

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

同步:以方法调用为例,同步调用是指,调用方要阻塞等待被调用方逻辑执行完成,在这种方式下,当被调用方执行时间太长,会造成调用方长时间阻塞等待。在高并发的场景下容易发生系统整体性能下降,甚至血崩。
异步:与同步调用恰恰相反,调用方不需要阻塞等待被调用方的逻辑执行完成就可以返回执行其他逻辑,等被调用方执行完毕后再通过回调或事件通知等方式把结果反馈给调用方。

最后,我们要注意,不能为了技术而技术,应该遵循用最简单的系统设计去满足业务需求和流量现状的原则,随着流量的增加的业务的变化去不断的做技术改造和完善。

高并发系统的演进应该是循序渐进,以解决系统中存在的问题为目的和驱动力的。

相关文章

  • 百亿级微信红包的高并发资金交易系统设计方案

    个人转载,技术学习,原文出处:百亿级微信红包的高并发资金交易系统设计方案 百亿级微信红包的高并发资金交易系统设计方...

  • 闲聊 Hash 算法

    最近读了一篇好文:【微信高并发资金交易系统设计方案——百亿红包背后的技术支撑】,其中关于高并发性能问题的解决方案中...

  • 高并发系统的三大设计方案

    听过太多有关高并发的技术,例如:消息队列,负载均衡,缓存中间件,数据库一主多从,降级,限流等。有关高并发的解决方案...

  • 如何设计一个高并发系统

    整理了设计高并发系统的15个锦囊,相信大家看完会有帮助的。 如何理解高并发系统 所谓设计高并发系统,就是设计一个系...

  • 微信红包高并发系统设计方案

    2017年1月28日,正月初一,微信公布了用户在除夕当天收发微信红包的数量——142亿个,而其收发峰值也已达到76...

  • 可扩展系统就得这么设计

    前面分享了高并发系统(高并发系统设计)以及高可用系统(高可用系统)的解决方案,今天我们再来看另一个很重要的模块,可...

  • 秒杀系统开发(一)

    本文部分内容来自 【PHP秒杀系统 高并发高性能的极致挑战】 目标 如何设计和实现秒杀系统? 实现系统的高并发、高...

  • 03 如何提升系统性能?

    高并发系统设计的三大目标:高性能、高可用、可扩展高并发承担更大的流量。性能反映了系统的使用体验。可用性表示系统可以...

  • 高并发系统

    一些基本记录 数据库层面用 for update 或者 ...where xxx-1>=0 可控制不超发 ...

  • 大型网站架构演化

    大型网站软件系统的特点 高并发 需要面对高并发用户,大流量访问。 高可用 系统7* 24小时不间断服务 海量数据 ...

网友评论

      本文标题:高并发系统的三大设计方案

      本文链接:https://www.haomeiwen.com/subject/dshmpctx.html