应用程序应对高并发的处理逻辑

应用程序处理高并发的逻辑

背景

经常会有人问我怎么样能使得一个程序支撑高并发,我一般都是回答取决于你有多少钱[偷笑]. 有钱就能解决. 

但是对于一个开发人员来说一个正确的思考逻辑是有必要的. 一般来说 处理的思路有以下几种

缓存,集群,分区,分布式,异步 这五步, 我称为"五板斧",一般要我处理性能问题,如果这 "五板斧"打完还是不行,一般我就开溜了

缓存

一般来说,一个系统最先遇到性能问题最先考虑的是缓存, 计算机叫计算机的原因原因是计算机擅长做计算不擅长做IO
(XXX云的机器除外,云机器由于云厂商坑人一般对cpu做了一些限制,用于省电,是既不擅长做IO也不擅长做计算,
所以叫云主机). 

大致可以理解为  寄存器IO > CPU缓存IO > 内存IO > 网络IO > 磁盘IO

CPU缓存是比较贵的而且小,所以我们能做的最快的一层就是服务器内存, 当然做内存缓存
的前提条件是你的编程语言做的应用是常驻内存的,比如世界上最好的语言PHP之类的脚本语言就没法做内存级别的缓存的(当然可以通过其他的方式实现)