前言今天看到有人说现在系统有2亿PV,怎么优化?看到这个题目,突然想到自己在工作中遇到了很多高并发的场景,于是就凑合了一下。在此做一个简单的总结和分享。欢迎指正和补充。文本阅读操作关于阅读,我们一般遵循以下优先级:优先级技术方案描述示例最高使用内存的优先级就近服务器内存,秒杀等远程内存服务,抢购库存(优先分配库存给服务器内存,其次是远程内存服务<涉及额外的网络IO>)极低的数据库(如果可以读,不要未读)连接池、sql优化常见业务写操作关于写,我们一般看数据一致性要求的高低:数据一致性要求不高技术方案先写入内存(优先从服务器内存到远程内存服务)然后异步存储高度同步异步完成最关键的任务保证其他任务最终成功调峰限流从简单到复杂:简单的技术方案最简单的百分比流量拒绝(随机,不先到先得不公平够了)简单的原子操作限流(优先使用服务器内存,其次是远程内存服务)稍微麻烦的队列限流(先到先得,公平)服务稳定性在高并发场景下,有时候为了保证正常运行核心业务,我们需要对一些次要业务进行服务降级。简单的降级方案如下:配置开关降级:手动配置开关降级定时开关降级:自动定时降级在运维架构的部署层面,此类服务尽量单独部署。武器“工欲善其事,必先利其器”。当然,我们必须要有好的武器来应对高并发。以下是高并发“三剑客”:专业术语解释异步异步回调,层层回调如灾难(Promise也是很臃肿的链码)epollIO多路复用,nginx/redis方案轻量级,用户态调度高并发能力
