OpenResty 小结

问题

后台是 云服务器 ECS + Nginx + PHP 。服务器配置比较低好像是2核4GB,后台提供接口,供前台Node.js和路由器插件(小米,极路由等)以及安卓客户端调用。

路由器插件端和安卓客户端的一个逻辑就是要请求后台获取 sn,再通过sn做其它操作。那么如果获取不到 sn 的时候,就会 10s 之后继续请求,这就是问题的根源。

产品刚刚上线,大约有两万台小米路由器设备于凌晨4点钟重启,不断地请求获取 sn 接口。后台就挂了, Nginx 502 bad gateway, PHP-FPM 进程数过多。

路由器插件在用户端,并不能做任何修改,只能是在后台优化使其能接受 20K 的 QPS。

为什么选择 OenResty

可以搭负载均衡,但是当前只是单个接口访问量特别高,单个服务器的性能并没有发挥到极致。

后来我就发现了 OpenResty ,可以用这个尝试下,然后我们先看下官网的描述。可以方便地搭建处理超高并发,看起来是我想要的。

OpenResty是一个基于与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

OpenResty 开发

OpenResty学习的话推荐一本小册子 OpenResty 最佳实践,讲的很好。

有以下要注意的几个点:

  1. Lua 的 数字都是 float 型,不能直接和字符串做比较。那么从 URL 接受的值要执行数字相关操作的话,就要先将其转为数字
local page = tonumber(arg['page'])
  1. Lua 中执行 sql 查询出来就是 table ,查询出来就是多条数据的形式。并且其下标都是从1开始的。
local id = 1000
res, err, errno, sqlstate = db:query(
      string.format([[select name from user where id = %d ]], id)
  )
if not res then
    ngx.say("failed to connect: ", err, ": ", errno, " ", sqlstate)
    return
else
    name = res[1]['name']
    ngx.say("name is ", name)
end

我最难受的是OenResty 中的调试只能是通过 Nginx 的 error.log,每次出了问题都要看日志。可能是我现在还不知道 OpenResty 如何开发才是最合适的,如果你有更好的方式一定要告诉我。

总结

如果是某些简单的业务,可以用 Lua 重写,可以极大提高性能,快来体验下吧。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容