码迷,mamicode.com
首页 > 其他好文 > 详细

设计一个高并发系统

时间:2019-09-20 23:10:36      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:分离   请求   读写   缓存   注册   读写分离   com   mda   width   

升级过程为:最初系统——添加负载均衡——数据库分库分表+读写分离——缓存集群+消息中间件集群

1、最初系统

假设系统机器是4核8G,数据库服务器是16核32G。日活用户1W,系统层面每秒10次请求,数据库层每秒30次请求。

技术图片

2、添加负载均衡

用户量增长了50倍,日活用户50万,高峰期对系统每秒请求500/s,对数据库的每秒请求1500/s

问题:系统CPU负载过高,数据库可以接受

技术图片

 3、数据库分库分表+读写分离

用户量继续增长,达到了1000万注册用户,每天日活用户是100万。

问题:系统层面可以通过负载均衡解决,数据库层面接受的请求量达到3000/s会负载过高。

技术图片

 4、缓存集群+消息中间件集群

用户量继续增长。

问题:系统层面不停加机器,可以承载更高的并发请求。数据库层面写入并发越来越高,可以扩容加数据库服务器;读并发越来越高,就扩容加更多的从库。

数据库扩容成本高。

读多写少的压力:缓存集群

在写数据库的时候同时写一份数据到缓存集群里,然后用缓存集群来承载大部分的读请求。

技术图片

高写入的压力:消息中间件集群

将写请求异步化处理。允许异步化的每秒 500 次请求写入 MQ,然后基于 MQ 做一个削峰填谷。以平稳的 100/s 的速度消费出来,然后落入数据库中。

技术图片

 

设计一个高并发系统

标签:分离   请求   读写   缓存   注册   读写分离   com   mda   width   

原文地址:https://www.cnblogs.com/kingshine007/p/11560114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!