背景
搭建一套大型WEB网站从技术角度讲采用开源的成熟的方案落地实现起来很简单,但是怎么扛住高并发的流量呢?这是一个值得我们思考的问题,值得我们一探究竟如何优化既有架构从而实现高并发的访问,使系统优雅平稳的运行
现有架构
优化后的架构
优化建议:
- 域名解析采用CDN服务,将静态资源缓存到CDN中,有效利用CDN回源的机制降低用户频繁访问服务器内的资源
- 采用负载均衡器,可以通过调整路由分发策略将流量均衡的打到不同的服务器
- 采用成熟的容器编排技术k8s, 定义服务器的资源监控策略,根据监控的指标波动情况动态的对服务器进行扩容或缩容,从而有效的提高服务器的资源使用率
- 应用层面采用成熟的微服务架构,按照微服务拆分的原则将应用拆分成若干个服务,然后将服务分别部署在K8S中,从而可以大大减轻单一服务应对高并发的压力
- 数据存储层面,针对热点数据不频繁改动的数据进行缓存化存储从而可以提高并发时查询的效率,减轻DB的IO压力;针对实际业务中大数据表还可以进行分库分表处理可以有效解决数据集中存储单一区域的性能瓶颈;数据库服务器、缓存服务器同样的可以进行多节点部署,一方面可以做到高可用另一方面可以有效的降低单一节点的数据访问压力
基于以上的优化建议,调整后的架构图如下: