OpenResty
在高并发场景的应用
应对高并发场景的解决方式
- 高性能服务器
- 高性能数据库
- 高效率编程语言
- 高性能Web容器
- 负载均衡
- CDN
- ......
OpenResty是什么
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

源自“金砖国家”

应用场景
Web应用
进行一些业务逻辑处理,甚至进行耗CPU的模板渲染,一般流程:mysql/redis/http获取数据、业务处理、产生JSON/XML/模板渲染内容,比如京东的列表页/商品详情页。

接入网关
实现如数据校验前置、缓存前置、数据过滤、API请求聚合、认证管理、负载均衡、流量控制、灰度发布、降级、监控等功能。

Web防火墙
可以进行IP/URL/UserAgent/Referer黑名单、限流等功能。

用户案例

新浪移动 && OpenResty

业务特征
- 静态新闻内容
- 登录用户占比很小
- 业务由CPU密集型向IO密集型转移


解决的问题
- 并发量猛增后服务挂掉的问题
面临新的问题
- PHP性能问题
- nginx里控制业务逻辑较为复杂,无法做到快速开发
- 对缓存需要更细颗粒度的控制

ngx_lua模块




init_by_lua
init_worker_by_lua

balancer_by_lua

capture

lua-resty-redis

性能对比













系统:centos7
CPU核心:2
内存:2G
资料
- QQ群:124613000
- OpenResty最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/
- nginx-lua-module:https://github.com/iresty/nginx-lua-module-zh-wiki
- awesome-resty:https://github.com/bungle/awesome-resty
- Lua5.2:http://www.lua.org/manual/5.2/
- OpenResty官网:http://openresty.org/cn/
- Blog: http://blog.08050142.com/2018/01/03/openresty-ppt/
Thank You

OpenResty在高并发场景的应用
By minkedong
OpenResty在高并发场景的应用
- 4,579