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

01 | 初探OpenResty的三大特性

性能优化
火焰图和周边工具链
单元测试框架和性能测试工具
协程和cosocket
OpenResty API和周边库
LuaJIT和Lua的不同之处
不同阶段的作用
同步非阻塞的编程模式
OpenResty的动态控制API
传统Web服务器的动态性
OpenResty的同步非阻塞编程模式
OpenResty的协程支持
OpenResty的测试案例
OpenResty的命令行工具restydoc
OpenResty的文档
OpenResty的学习重点
动态
同步非阻塞
详尽的文档和测试用例
OpenResty在CDN公司Cloudflare
OpenResty的作者章亦春
OpenResty的第一个版本
OpenResty的优势
OpenResty的发展过程
你学习的重点在哪里?
OpenResty的三大特性
OpenResty的发展
初探OpenResty的三大特性
初探OpenResty的三大特性

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

你好,我是温铭。
开篇词里我们说过,OpenResty 的优势显而易见。不过,在具体学习之前,让我们先简单回顾下 OpenResty 的发展过程,这有助于你对后面内容有更好的理解。

OpenResty 的发展

OpenResty 并不像其他的开发语言一样从零开始搭建,而是基于成熟的开源组件——NGINX 和 LuaJIT。OpenResty 诞生于 2007 年,不过,它的第一个版本并没有选择 Lua,而是用了 Perl,这跟作者章亦春的技术偏好有很大关系。
但 Perl 的性能远远不能达到要求,于是,在第二个版本中,Perl 就被 Lua 给替换了。 不过,在 OpenResty 官方的项目中,Perl 依然占据着重要的角色,OpenResty 工程化方面都是用 Perl 来构建,比如测试框架、Linter、CLI 等,后面我们也会逐步介绍。
后来,章亦春离开了淘宝,加入了美国的 CDN 公司 Cloudflare。因为 OpenResty 高性能和动态的优势很适合 CDN 的业务需求,很快, OpenResty 就成为 CDN 的技术标准。 通过丰富的 lua-resty 库,OpenResty 开始逐渐摆脱 NGINX 的影子,形成自己的生态体系,在 API 网关、软 WAF 等领域被广泛使用。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

OpenResty是一个基于NGINX和LuaJIT的开源项目,具有详尽的文档和测试用例、同步非阻塞的协程和动态性三大特性。该项目在CDN等领域广泛应用,为开发者提供便利。其支持同步非阻塞的编程模式,动态地控制路由、上游、SSL证书等,甚至可以在不重启的情况下修改业务处理逻辑。学习OpenResty的重点包括理解同步非阻塞的编程模式、不同阶段的作用、LuaJIT和Lua的不同之处、OpenResty API和周边库等内容。对于初学者,建议跟着专栏的进度,在自己的环境中安装OpenResty,运行并修改示例代码。对于项目中使用OpenResty的人来说,可以在阅读LuaJIT和性能优化章节时,应用到实际项目中。此外,对于测试工程师来说,OpenResty的测试框架和性能分析工具集也能给予启发。在学习过程中有任何疑问,都可以在专栏中留言,作者会及时答复。

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

全部留言(31)

  • 最新
  • 精选
  • zhang
    分享一篇以前学openresty 时写的笔记,当时处于一个阅读过nginx源码,但是没有实际使用或者开发nginx的情况,另外个人的描述描述能力也比较差,很多知识储备不足。 当时写这篇笔记并不是对源码进行解读,只是站在一个有什么功能,我应该如何实现它,它是如何做的,这样一个角度去分析的。 希望这篇笔记可以让大家有一定收获,也希望我们可以互相扶持,一起坚持下去,学好这门课程。 http://note.youdao.com/noteshare?id=965c9f034a82ffb0f8b4de6ca81f3e73

    作者回复: 👍 一起学习

    2019-05-27
    16
  • 看了下 openresty github 仓库 https://github.com/openresty/openresty 发现 t文件夹下没有什么测试文件,这个是需要看每个相关的模块的仓库吗? 又看了 https://github.com/openresty/lua-nginx-module 这个模块发现 t文件夹下是有测试文件的

    作者回复: https://github.com/openresty/openresty 是用于打源码包的项目,所以测试案例不多。 是的,需要看这个子项目的仓库。

    2019-05-27
    7
  • FF
    请教下温老师,关于阻塞/非阻塞。 如果 CPU 趁机去处理其他连接的请求,那就是非阻塞。 但对于用户线程来讲,怎么理解这个非阻塞呢? 理解1,这个查询的用户线程是不是还得阻塞等待 1 秒钟等待返回?这样的话应用的性能还是会不理想? 理解2,用户线程也是非阻塞,操作系统线程非阻塞返回后,用户的数据不一定有,这个时候用户线程要轮询去调用查询,直到有数据。这样的话,对于应用来讲,性能不是一样不理想? 哪种理解是对的呢?但无论哪种,用户应用性能可能都提不上理想,这样的话为何非阻塞是C10K,C100K 实现的关键呢?

    作者回复: 理解 1 是对的。站在用户请求的角度,非阻塞并不会减少处理的时间,但是会减少等待的时间。OpenResty 的每个 worker 同一时间只在处理一个请求,如果阻塞了,这个 worker 上的其他请求都需要等待。 C10K 要解决的是高并发的问题,是服务端的整体性能。

    2019-05-27
    5
  • shonm
    老师你好,上面的代码中,如果是非阻塞的,他不是立马返回吗,怎么又会等1秒,怎么做到同步呢?

    作者回复: 非阻塞的自然不会等待 1 秒,但这 1 秒钟的时间内,CPU 是去处理其他请求的逻辑,并且把当前请求挂起。 等数据库返回了结果后,才唤醒之前的请求,这样就做到了同步。

    2019-06-02
    3
    4
  • Luciano李鑫
    pr是啥意思

    作者回复: 是 GitHub 中 Pull Request 的缩写

    2019-06-04
    3
  • 馬偉偉💫
    期待已久,第一次听说这技术就是在网易云课堂老师讲的课,买了书准备学习老师就开了极客时间的专栏,结合书集和老师的专栏希望能有所收获。

    作者回复: 一起学习

    2019-05-27
    3
  • 阳仔
    Lua到底怎么读?

    作者回复: 我读“路啦”

    2019-06-03
    2
    2
  • 许多子
    请问openresty可不可以就当作nginx来使用呢?不写lua的情况下,用来搭建web服务器,这两者有没有区别呢?

    作者回复: 当然可以,OpenResty 是基于 NGINX 的。但需要注意的是,OpenResty 的版本一般会落后于 NGINX。

    2019-05-28
    2
  • ZeroIce
    老师,异步可否通过js 宏、微任务进行理解?即:单线程js想做多线程的事(例:settimeout), 非阻塞:通过多线程进行并发处理

    作者回复: js 的不太懂

    2019-08-02
  • book尾汁
    学了这门课程,还用看openresty入门到实践那本书吗

    作者回复: 没有了解过这本书,不好评价

    2019-06-06
收起评论
显示
设置
留言
31
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部