张口大数据,闭口高并发


发布时间:2020-05-15 19:07:27 | 来源: | 编辑整理:超管

一、个人理解
服务器负载均衡,多台服务器跑
redis缓存主从集群
数据库表优化、索引优化、分库分表,主从集群,读写分离
静态文件CDN


二、大话程序猿眼里的高并发架构摘录
高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒杀活动,定时领取红包等。
为了让业务可以流畅的运行并且给用户一个好的交互体验,我们需要根据业务场景预估达到的并发量等因素,来设计适合自己业务场景的高并发处理方案。

服务器架构:
业务从发展的初期到逐渐成熟,服务器架构也是从相对单一到集群,再到分布式服务。一个可以支持高并发的服务少不了好的服务器架构,需要有均衡负载,数据库需要主从集群,nosql缓存需要主从集群,静态文件需要上传cdn,这些都是能让业务程序流畅运行的强大后盾。服务器这块多是需要运维人员来配合搭建。

大致需要用到的服务器架构如下:
服务器
均衡负载(如:nginx,阿里云SLB)
资源监控
分布式
数据库
主从分离,集群
DBA 表优化,索引优化,等
分布式
nosql
redis
主从分离,集群
mongodb
主从分离,集群
memcache
主从分离,集群
cdn
html
css
js
image

场景:
1、业务相关的表都是大数据表,业务多是查询操作,所以我们需要减少用户直接命中DB的查询;优先查询缓存,如果缓存不存在,再进行DB查询,将查询结果缓存起来。
服务器架构图:



2、高并发的业务,像不是只有查询的操作并且会有高并发的插入或者更新数据的业务,前面提到的方案就无法支撑,并发的时候都是直接命中DB;设计这块业务的时候就会使用消息队列,可以将参与用户的信息添加到消息队列中,然后再写个多线程程序去消耗队列。
服务器架构图:
3、一级缓存,一级缓存就是使用站点服务器缓存去存储数据,注意只存储部分请求量大的数据,并且缓存的数据量要控制,不能过分使用站点服务器的内存,从而影响了站点应用程序的正常运行,一级缓存需要设置秒单位的过期时间,具体时间根据业务场景设定,目的是当有高并发请求的时候可以让数据的获取命中到一级缓存,而不用连接缓存nosql数据服务器,减少nosql数据服务器的压力;比如APP首屏商品数据接口,这些数据是公共的,不会针对用户自定义,而且这些数据不会频繁的更新,像这种接口的请求量比较大就可以加入一级缓存。
服务器架构图: