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

04 | 如何管理第三方包?从包管理工具luarocks和opm说起

lua-resty-http
依赖项
配置
更新时间
star 数
lua-resty-http
http 请求库
推荐库
分类
包维护
C 代码编译支持
Kong
OpenResty 和 Lua 库
包管理器
选择包
搜索
包管理器
非阻塞
lua-resty 库
底层网络库
NGINX
Awesome-Resty
LuaRocks
OPM (OpenResty Package Manager)
第三方库需求
OpenResty
如何管理第三方包

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

你好,我是温铭。
在上一节中,我们大概了解了下 OpenResty 官方的一些项目。不过,如果我们把 OpenResty 用于生产环境,显然,OpenResty 安装包自带的这些库是远远不够的,比如没有 lua-resty 库来发起 HTTP 请求,也没有办法和 Kafka 交互。
那么应该怎么办呢?本节我们就来一起了解下,应该从什么渠道来找到这些第三方库。
这里,我再次强调下,OpenResty 并不是 NGINX 的 fork,也不是在 NGINX 的基础上加了一些常用库重新打包,而只是把 NGINX 当作底层的网络库来使用
当你使用 NGINX 的时候,是不会想着如何发起自定义的 HTTP 请求,以及如何与 Kafka 交互的。而在 OpenResty 的世界中,由于 cosocket 的存在,开发者可以轻松地写出 lua-resty-http 和 lua-resty-kafka ,来处理这类需求,就像你用 Python、PHP 这类的开发语言一样。
另外,还有一个建议告诉你:你不应该使用任何 Lua 世界的库来解决上述问题,而是应该使用 cosocket 的 lua-resty-* 库。Lua 世界的库很可能会带来阻塞,让原本高性能的服务,直接下降几个数量级。这是 OpenResty 初学者的常见错误,而且并不容易觉察到。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了OpenResty包管理工具luarocks和opm的使用方法,以及在OpenResty世界中处理HTTP请求和与Kafka交互的优势。作者还提到了使用OPM和LuaRocks来查找和管理第三方库的方法,以及Awesome-Resty项目对OpenResty可用包的分类整理。最后,作者建议工程师可以根据需求选择合适的第三方库,或自行实现需要的库。整体来看,本文以实际问题为切入点,介绍了OpenResty包管理的相关工具和方法,为读者提供了一些实用的技术指导。文章强调了OpenResty生态的重要性,呼吁更多开发者和公司加入进来,形成一个更加健康的生态。

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

全部留言(20)

  • 最新
  • 精选
  • 业余草
    OpenResty 一直没有访问 Oracle 或者 SQLServer 的 lua-rsety 库。这是有什么原因吗?

    作者回复: 因为 Oracle 和 SQLServer 是闭源的商业产品

    2019-06-06
    2
    6
  • 咖啡猫
    luarocks安装了包后,在nginx.conf应该怎么设置lua_package_path呢,有时候设置了默认搜索路径,也是不生效,尝试将包拷贝到lualib的目录下才能找到

    作者回复: luarocks 和 OpenResty 并没有配合和联动,需要你单独在 lua_package_path 中增加 luarocks 安装的路径才行。一般来说,luarocks 会把库安装到 lua5.1 或者 lua5.3 的目录下。

    2019-06-03
    5
  • Panda
    包管理工具 最好用的应该是 composer 和 npm 包管理工具可以让我们站在前人的肩膀上更快的开发出应用

    作者回复: luarocks 相对好用一些

    2019-06-03
    3
    3
  • baiyutang
    感觉OpenResty比较偏向于运维开发的一部分,因为业务开发比较少关系服务器部署或者性能,性能的话可能大厂会遇到更多问题或者需要定制化的问题。 1 很多小厂多仅限于运用作为一个web服务器。 2 程序员圈子中业务开发还是相对比较多的? 所以,虽然东西是好东西,但是不是每个厂 或者每个人都能玩的起来的。不能像Vuejs或者Golang这些业务开发技术直接做比较。当然,我仍然觉得OpenResty是值得投入的,从职业规划或者个人对软件的理解。我都看好学习好OR.

    作者回复: 是的,OpenResty 使用广,但不热门。用 OpenResty 开发业务是没问题的,把它仅仅当做 nginx 的替代就有些大材小用了

    2019-06-05
    2
  • opm 上的第三方库,还是很少的,功能还有待完善

    作者回复: opm 确实不够完善,还要多多加油才行

    2019-06-03
    2
  • manatee
    打卡,从opm中可以安装opresty相关的第三方包,从luarocks可以安装lua相关的第三方包。想请教一下老师,文中讲的cosocket具体是指什么呢

    作者回复: cosocket 后面会专门讲,你可以简单的认为它是 OpenResty 特有的,用来访问网络的协程技术

    2019-06-03
    2
  • 蓝色海洋
    请问老师,openresty支持grpc通信吗?有没有相关的组件可以将grpc转换为普通的http请求

    作者回复: 现在 OpenResty 和 Nginx 一样,只支持 grpc 的转发,并没有实现协议的转换,也不支持 grpc 的客户端。这算是 OpenResty 的一个软肋。我们团队有计划对这方面做加强。

    2019-07-15
    1
  • NEVER SETTLE
    yum install openresty 安装好openresty之后,为什么找不到opm

    作者回复: sudo yum install openresty-opm 需要单独安装一下

    2019-06-17
    1
  • 英雄
    菜鸟推荐用哪个管理工具呢

    作者回复: luarocks

    2019-06-10
    1
  • TomShine
    OpenRestry 的生态看着确实不好,我们可以一起努力

    作者回复: 众人拾柴火焰高

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