快速搭建高性能服务端
温铭
传统技术架构
• LNMP :
http query->Nginx->fcgi->py(php)->cache->db
优点:成熟稳定方案 + 开发速度快 + 方便
调试 + 容易扩展和优化 + 测试友好 + 良好性
能
缺点:请求处理链长,影响性能
毒霸遇到的挑战
• 千万用户
• 云查询
• 在传统架构上面做了所有尝试
性能最优架构
• 360, duba 云端架构:
http or udp query->Nginx + C module + Memdb
优点:性能
缺点:难以稳定 + 开发难度高,时间长
+ 很难调试 + 不好扩展 + 测试困难
06/25/13
优化的结果
• 3Q 大战
• 可牛合并
• 服务器预算锐减
• 不再担心性能
对比
• 一般推荐传统架构
 性能相差不多: 5 倍左右,并且可以通过异步、新技术进
行优化
 开发时间悬殊: 1 人月 vs 2 人年
 维护代价低:方便测试,好招人
• 谨慎推荐性能最优架构
 性能
 高可用
 有动力,有人,有时间
有没有两全其美的方案?
http query->?->db
Ngx_lua
• http query->ngx_lua->db
• 逻辑嵌入 Nginx ,减少请求处理链长度
• 无阻塞
• LuaJIT
• 达到 C module 的性能
支持什么数据存储方式
• MySQL
• Postgres
• Mongodb
• Redis
• Memcached
Hello world
06/25/13
location = /hello {
default_type text/html;
content_by_lua '
ngx.say("<p>hello, world</p>")
';
}
ngx_lua 入门
• 由 Lua 粘合的 Nginx 生态环境
• ngx_lua 内幕
06/25/13
ngx_lua 练手
• 网址云安全服务
• 两天搭建完成
• 高性能
• 有效
• https://github.com/moonbingbing/Oriole
Q&A

快速搭建高性能服务端