前端:nginx+lua
lua负责读取一个 写着每个业务拒绝服务概率的文件,按这个比例在流量过载时抛弃一定比例的请求。
策略生成:每分钟去获取节点流量和本机的网卡流量占比,去生成概率文件。
传统的实现:
写到磁盘,每个请求过来 lua 都去磁盘上io读取/关闭。实时大量的请求是无法承受的。
改进:
利用虚拟内存实现高效率的文件读取,因为文件本身就是在内存中的,没有io之说。
创建内存文件系统,文件讲都存储在内存中
系统默认的地址是 /dev/shm 可以把文件写到这里,和普通文件读写一样,只不过shm是挂载在内存中的。效率极高!
自己mont一个虚拟内存目录:
1 mount tmpfs /home/work/myshm -t tmpfs -o size=32m