当前位置: 首页 > news >正文

【高并发架构设计】-1:高并发通用设计思想

在这里插入图片描述

本文目录

  • 1. 天下长河
    • Scale-out
    • 缓存
    • 异步

1. 天下长河

最近看电视剧《天下长河》的时候,讲的就是自康熙十五年一场巨大的水患之后,年轻的康熙帝设科开举招纳治河贤才,二十四岁的落第举子陈潢脱颖而出,长于治河。 所以说,古代的时候,长江和黄河经常泛洪,那么他们是怎么治理的,主要有几种方式,比如拓宽河道,让河流降低流量;又或者是像都江堰一样,建造多个分流支流,分担压力;或者是像三门峡创建多个水库,然后再把水库的水排出去。

高并发也是指流量特别大,比如双十一这种,一般需要通过架构设计来抵抗高并发流量冲击,确保系统稳定性。

那么归根结底,我们也可以把高并发的方案概括为三种方案:

1、分布式:分而治之,直接分布式部署多个集群,把流量分开,每个服务器都来承担一部分的并发和流量问题。这个也可以看作是Scale-out,横向拓展思想。

2、缓存:通过建造缓存来提高系统的性能。

3、异步:某些场景下,比如微服务中的调用链路太长了,那么未处理完之前,可以让请求先返回,数据准备好了之后再通知请求方,可以在单位时间内处理更多请求。

Scale-out

Scale-out是指横向拓展,比如说分布式这种,对应的scale-up,就是指直接对单机的硬件性能进行提升,当系统超过了单机的极限的时候,一般是先考虑scale-up,然后再考虑scale-out。

本质上就是横向和纵向的这个意思,横向需要考虑很多的问题,比如说某个节点出现故障,如何保障整体集群的可用性;多个节点的状态信息如何同步;如何进行动态的增加删除节点而不影响系统正常运行。

缓存

普通的磁盘寻道时间通常是10ms,CPU执行指令和内存寻址的时间都是在ns级别,从千兆的网卡上读取数据的时间是在us微秒级别(即 1μs = 1000ns)。所以可以知道,磁盘是最慢的,会相差几个数量级。

缓存思想已经很久了,比如说CPU多级缓存、还有内存页的缓存,包括redis、kafka也都有这个内部缓存机制。

异步

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

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

最常见的就是用消息队列,把消息丢进消息队列,然后直接返回给用户消息,那么就可以释放资源来处理更多请求。当请求全部处理完成之后,再告诉用户订票是否成功或者失败。

相关文章:

  • 外出充电不发愁,倍思便携式移动电源成出行新宠
  • 【日撸 Java 三百行】Day 12(顺序表(二))
  • Linux笔记---信号(上)
  • I/O多路复用(select/poll/epoll)
  • 一.Gitee基本操作
  • K8S中构建双架构镜像-从零到成功
  • 反弹shell再入门
  • 计算机网络:CPU与时钟的关系
  • 动手学深度学习12.3.自动并行-笔记练习(PyTorch)
  • 【TVM 教程】microTVM PyTorch 教程
  • @Component 注解:Spring 组件扫描与管理的基石
  • istringstream的简化源码详解
  • django之视图
  • 构建DEEPPOLAR ——Architecture for DEEPPOLAR (256,37)
  • 一文读懂如何使用MCP创建服务器
  • LWIP传输层协议笔记
  • C++ asio网络编程(5)简单异步echo服务器
  • 【】东方财务的Choice数据量化接口,在linux上安装python 版本,需要联系客户经理审核通过后就可以使用了。使用接口更加稳定和全面。
  • 智能指针入门:深入理解 C++ 的 shared_ptr
  • 【Mysql基础】一、基础入门和常见SQL语句
  • 中美经贸中方牵头人、国务院副总理何立峰出席新闻发布会表示:中美达成重要共识,会谈取得实质性进展
  • 三大股份制银行入局AIC,一级市场再迎“活水”
  • 多地再发网约车从业及投资风险提示:避免盲目花费大笔资金“购车”入行
  • 2025中国品牌日上海践行活动启动,将建设品牌生态交互平台
  • 雇来的“妈妈”:为入狱雇主无偿带娃4年,没做好准备说再见
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世