IO复用:
MariaDB
PerconaDB
web :Nginx , LNMP, Memcached ,tomcat ,varnish
www.nginx.org 官方站点

Nginx pronounced engine-x
HTTP服务器
反向代理 :reverse proxy
反向代理的协议
http
mail
IO复用_第1张图片
netcraft 网站 web市场占有率

IO复用_第2张图片

Nginx优势 :
高性能
稳定性
丰富的特性
简单配置
低资源消耗

多进程模型
进程切换
阻塞状态 不可中断睡眠
DMA 直接内存访问

C10K
单进程 :阻塞
多进程 :每个进程响应一个请求
进程量大。进程切换次数过多
每个进程的地址空间是独立,很多空间是重复的数据,所以内存使用效率较低
线程 :thread, Light Weight Process, LWP
每个线程响应一个请求
线程依然需要切换,切换较之进程轻量级
同一个进程的线程可以共享进程的诸多资源,比如打开的文件
对内存的需求较之进程略有下降
快速切换时会带来线程抖动
忙等 :自旋锁 Spin lock
闲等

多进程多线程模型:
多线程:n个请求
一个线程响应多个请求
select(1024)
AIO :异步IO

同步通信
异步通信

多路IO,IO复用
IO复用_第3张图片
IO Models :
IO复用_第4张图片
阻塞IO
非阻塞IO
IO复用
信号驱动IO
异步IO

同步IO和异步IO
IO复用_第5张图片
异步阻塞IO 又称为IO复用
阻塞IO具体模型详解:
IO复用_第6张图片
非阻塞IO具体模型详解:
IO复用_第7张图片

IO复用具体模型详解:
IO复用_第8张图片

事件驱动IO:水平触发,边缘触发
数据准备完成后向进程通知
5种模型对比 :
IO复用_第9张图片
epoll
/dev/poll
kqueue

mmap:内存映射
异步IO 实现起来比较复杂

IO:网络IO和磁盘IO
httpd :
MPM
prefork :一个进程响应一个请求 ,1024
worker :一个线程响应一个请求,多线程,一个进程生成多个线程
event :基于事件驱动

Nginx 做反向代理
程序有局部性,数据有局部性
CDN 内容分发网络 依赖于智能DNS 内容路由 缓存路由
hadoop 大数据分析 异步结构
NoSQL 大量写操作时使用
模块化 架构师 拓展起来