参考:https://blog.thankbabe.com/2016/09/14/high-concurrency-scheme/
非常赞!
1、服务器架构
一个可以支持高并发的服务少不了好的服务器架构
数据库:主从分离,集群
redis主从集群
2、缓存
对于高并发查询操作,优先查询缓存,如果缓存不存在,再进行DB查询,将查询结果缓存起来,不会影响查询效率
3、消息队列
并发量大,采用异步同步数据,消息队列
高并发的插入和更新数据:消息队列,将数据放到消息队列中,然后再写多个线程去消耗队列
4、静态化数据
静态文件上传cdn,cdn节点缓存静态文件,减少服务器压力:
高并发请求数据不变化的情况下如果可以不请求自己的服务器获取数据那就可以减少服务器的资源压力。
对于更新频繁度不高,并且数据允许短时间内的延迟,可以通过数据静态化成JSON,XML,HTML等数据文件上传CDN,在拉取数据的时候优先到CDN拉取,如果没有获取到数据再从缓存,数据库中获取,当管理人员操作后台编辑数据再重新生成静态文件上传同步到CDN,这样在高并发的时候可以使数据的获取命中在CDN服务器上。
CDN节点同步有一定的延迟性,所以找一个靠谱的CDN服务器商也很重要