适用场景:
1) 需要复杂计算才能得出的数据
2) 读多写少,绝大部分都是读多写少,减少存储读压力
缓存问题:
1) 缓存穿透
2) 缓存雪崩
3) 缓存击穿
4) 缓存热点
具体解决方案详见【缓存】
(1) PPC(Process per Connection): 有连接来fork子进程处理
(2) prefork: 预先fork子进程池子,来处理随时回来的请求,减少fork代价
(3) TPC(Thread per Connection): 每次有新的连接就新建一个线程去专门处理请求。 比进程轻量
(4) prethread: 预先创建线程
(5) Reactor模型
* 单Reactor单进程/线程
* 单Reactor多进程/线程
* 多Reactor多进程/线程* Reactor模型(具体详见【Reactor模型】)
(6) Proactor模型
(1) DNS负载均衡
域名解析到不同的ip
(2) 硬件负载均衡
通过单独的设备做负载均衡,例如F5,支持百万级的并发
(3) 软件负载均衡
通过软件进行负载均衡,例如Nginx、LVS
Nginx: 7层(应用层)负载均衡,支持HTTP协议等,万级并发
LVS: 4层(传输层)负载均衡,TCP/UDP等,十万级并发
轮询、加权轮询(性能好的机器加大权重)、负载最低优先、Hash等等