本篇文章介绍在公司做库存系统接触到的高并发场景下的优化方案。
什么是高并发
From:百度百科
由于分布式系统的问世,高并发(High Concurrency)通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一 API 接口或者 Url 地址。它经常会发生在有大活跃用户量,用户高聚集的业务场景中。
优化方向
静态资源
采用CDN(Content Delivery Network)是指内容分发网络,处理如html,js,css,image等静态资源。
动态资源(重点)
选择合适的web服务
常见的web如nginx,swoole的HttpServer,go的HttpServer,由于各自的特性(nginx的epoll模型,swoole与go的协程),它们都是能够轻松因对万级并发的优秀web服务。数据层优化
- 读写分离: 降低数据库的负载,提高查询性能。
- 使用数据库连接池,减少连接实例化的次数,节省了内存和时间,提升了效率。
- NoSQL:相较于MySQL的select,采用更高效的Redis数据结构缓存数据。
- 内存: 相较于Redis缓存查询,使用内存来缓存数据会更高效。但维护成本较高,适用缓存不经常变更的数据。
业务层优化
- 使用异步的方式拆分耗时较长的业务。具体方案有消息队列,协程,异步任务等。
- 需请求三方服务接口事,选择Http长连接。
系统层优化
- 集群模式,当一台服务扛不住压的时候,就需要多增加N台,提升N倍的接口处理能力。
- 本文作者: Hongker
- 本文链接: https://hongker.github.io/2020/03/30/高并发解决方案/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!