OpenResty
- OpenResty 由 Nginx 核心加很多第三方模块组成,默认集成了 Lua 开发环境,使得开发人员可以使用 nginx_lua 开发 Nginx,使 Nginx 可以变成一个可以支持多功能的 Web Server;
- OpenResty 借助 Nginx 的事件驱动模型和非阻塞 IO(epoll),可以实现高性能的 Web 应用程序;
- OpenResty 提供了大量组件,如 MySQL、Redis、Memcached、MangoDB 等的客户端,使在 Nginx 上开发 Web 应用更加方便;其实业务逻辑用哪种语言都可以写,难的是和各种中间件的交互,有了封装好的中间件的客户端,业务开发就很容易了;但是如果要做复杂的多态、继承等面向对象的复杂系统,比如秒杀系统的 ItemModel、ItemVO 这样的,用 Lua 开发就不太合适;
OpenResty Hello World
- 创建 helloworld.lua
ngx.exec("/item/get?id=6");
- 修改 nginx.conf
location /helloworld { content_by_lua_file ../lua/helloworld.lua; }
- 重启 nginx
sudo sbin/nginx -s reload
-
{
-
"status"
:
"success"
,
-
"data"
:
{
-
"id"
:
1
,
-
"title"
:
"聚焦Java性能优化 打造亿级流量秒杀系统(附赠秒杀项目)"
,
-
"price"
:
366
,
-
"stock"
:
98
,
-
"description"
:
"打破秒杀项目性能提升的多重瓶颈 多种硬核技术实现全面优化"
,
-
"sales"
:
12
,
-
"imgUrl"
:
"https://img2.mukewang.com/szimg/5cda946c0826e4c006000338-228-128.jpg"
,
-
"promoStatus"
:
0
,
-
"promoPrice"
:
null
,
-
"promoId"
:
null
,
-
"startDate"
:
null
-
}
-
}