加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

架构师眼中的高并发架构

发布时间:2020-12-31 21:20:39 所属栏目:运营 来源:网络整理
导读:div class="blog-abstract"择要: 以架构师的目光来报告高并发架构 div id="blogBody" class="blog-body" div class="BlogContent clearfix" h3 id="h3_0"媒介 高并发常常会产生在有大活泼用户量,用户高聚积的营业场景中,如:秒杀勾当,按时领取红包等。为

高并发营业接口大都都是举办营业数据的查询,如:商品列表,商品信息,用户信息,红包信息等,这些数据都是不会常常变革,而且耐久化在数据库中高并发的环境下直接毗连从库做查询操纵,多台从库处事器也抗不住这么大量的毗连哀求数(前面说过,单台数据库处事器应承的最大毗连数目是有限的)那么我们在这种高并发的营业接口要怎样计划呢?

  • 计划思量:
    • 照旧逆向思想,压力在数据库,那么我们就不举办数据库查询
    • 数据不常常变革,我们为啥要一向查询DB?
    • 数据稳固革客户端为啥要向处事器哀求返回一样的数据?
  • 方案计划:
    • 数据不常常变革,我们可以把数据举办缓存,缓存的方法有许多种,一样平常的:应用处事器直接Cache内存,主流的:存储在memcache、redis内存数据库
    • Cache是直接存储在应用处事器中,读取速率快,内存数据库处事器应承毗连数可以支撑到很大,并且数据存储在内存,读取速率快,再加上主从集群,可以支撑很大的并发查询
    • 按照营业景象,行使共同客户端当地存,假如我们数据内容不常常变革,为啥要一向哀求处事器获取沟通数据,可以通过匹配数据版本号,假如版本号纷歧样接口从头查询缓存返回数据和版本号,假如一样则不查询数据直接相应
    • 这样不只可以进步接口相应速率,也可以节省处事器带宽,固然有些处事器带宽是按流量计费,可是也不是绝对无穷的,在高并发的时辰处事器带宽也也许导致哀求相应慢的题目
  • 增补:
    • 缓存同时也指静态资源客户端缓存
    • cdn缓存,静态资源通过上传cdn,cdn节点缓存我们的静态资源,镌汰处事器压力

image

  • SOA面向处事架构计划
  • 微处事更细粒度处事化,一系列的独立的处事配合构成体系

行使处事化思想,将焦点营业可能通用的营业成果抽离成处事独立陈设,对外提供接口的方法提供成果。最抱负化的计划是可以把一个伟大的体系抽离成多个处事,配合构成体系的营业,利益:松耦合,高可用性,高伸缩性,易维护。通过面向处事化计划,独立处事器陈设,平衡负载,数据库集群,可以让处事支撑更高的并发

  • 处事例子:
    • 用户举动跟踪记录统计
  • 声名:
    • 通过上报应用模块,操纵变乱,变乱工具,等数据,记任命户的操纵举动
    • 好比:记任命户在某个商品模块,点击了某一件商品,可能赏识了某一件商品
  • 配景:
    • 因为处事必要记任命户的各类操纵举动,而且可以一再上报,筹备接入处事的营业又是焦点营业的用户举动跟踪,以是哀求量很大,岑岭期会发生大量并发哀求。
  • 架构:
    • nodejs WEB应用处事器平衡负载
    • redis主从集群
    • mysql主
    • nodejs+express+ejs+redis+mysql
    • 处事端回收nodejs,nodejs是单历程(PM2按照cpu核数开启多个事变历程),回收变乱驱念头制,得当I/O麋集型营业,处理赏罚高并发手段强
  • 营业计划:
    • 并发量大,以是不能直接入库,回收:异步同步数据,动静行列
    • 哀求接口上报数据,接口将上报数据push到redis的list行列中
    • nodejs写入库剧本,轮回pop redis list数据,将数据存储入库,并举办相干统计Update,无数据时sleep几秒
    • 由于数据量会较量大,上报的数据表按天定名存储
  • 接口:
    • 上报数据接口
    • 统计查询接口
  • 上线跟进:
    • 处奇迹务根基正常
    • 天天的上报表有上万万的数据

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读