OpenResty 从入门到实战
温铭
OpenResty 软件基金会第一任主席,Apache APISIX 项目 VP
20903 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 52 讲
结束语 (1讲)
OpenResty 从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

45 | 不得不提的能力外延:OpenResty常用的第三方库

写在最后
worker 间通信
JSON Schema
ngx.var 的性能提升
去哪里找 lua-resty 库?
能力外延:OpenResty常用的第三方库

该思维导图由 AI 生成,仅供参考

你好,我是温铭。
对于开发语言和平台来讲,很多时候的学习,其实是对标准库和第三方库的学习,语法本身并不用花费很多的时间。这对 OpenResty 来说也是一样的,学完它自己的 API 和性能优化技巧后,就需要各种 lua-resty 库,来帮助我们把 OpenResty 的能力外延,以应用到更多的场景中去。

去哪里找 lua-resty 库?

和 PHP、Python、JavaScript 相比,当前 OpenResty 的标准库和第三方库还比较贫瘠,找出合适的 lua-resty 库还不是一件容易的事情。不过,这里仍然有两个推荐的渠道,可以帮你更快地找到它们。
我首先推荐的是由 Aapo 维护的 awesome-resty 仓库,这个仓库分门别类地整理了和 OpenResty 相关的库,可以说是包罗万象,包括了 Nginx 的 C 模块、lua-resty 库、Web 框架、路由库、模板、测试框架等,是你寻找 OpenResty 资源的首选。
当然,如果你在 Aapo 的仓库中没有找到合适的库,那么还可以去 luarocks、opm 和 GitHub 碰碰运气。有一些开源时间不长的、或者关注不多的库,可能就藏在其中。
在前面的课程中,我们已经接触了不少有用的库,比如 lua-resty-mlcache、lua-resty-traffic、lua-resty-shell 等。今天,在 OpenResty 性能优化部分的最后一节课,我们再来认识 3 个独具特色的周边库,它们都是由社区的开发者贡献的。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

OpenResty常用的第三方库对于OpenResty的应用带来了更多的可能性。文章首先介绍了寻找lua-resty库的途径,推荐了awesome-resty仓库和luarocks、opm以及GitHub。接着介绍了三个独具特色的周边库。首先是一个C模块,通过FFI的方式解决了ngx.var的性能问题,提升了5倍的性能。其次介绍了lua-rapidjson库,支持JSON Schema,为接口的校验带来了极大的便利。最后介绍了lua-resty-worker-events库,实现了OpenResty中worker间的事件通知机制。虽然存在一定的延时,但仍然解决了worker之间的通信问题。文章强调了学习某个库或工具时,不仅要停留在操作使用的层面,还应该多问为什么,多看源码,从底层原理的层面上学到更多的设计思想和解决思路。最后鼓励读者分享自己发现的OpenResty周边有意思的库,或者对于介绍的这几个库有何发现或疑惑。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《OpenResty 从入门到实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • HelloTalk
    实时性要求比较高的场景下 我们都是 worker 里面 bpop 从redis 加载数据, 如果要在内存件通讯 我觉得是不是可以在 sharedict lpop 实现一个类似 blpop的函数(阻塞出队列)。
    2019-11-03
    1
  • 欢乐马
    nginx有一个第三方库nchan可以实现跨worker的消息推送,不确定性能稳不稳定?
    2020-07-05
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部