Erlang / OTP和OpenResty之间的架构差异是什么?

时间:2016-03-14 22:38:56

标签: otp openresty

在Erlang / OTP中,我已经了解了轻量级进程,角色模型和主管在创建可靠服务方面的重要性。这与OpenResty(master / worker,async IO,嵌入式Lua)相比如何?

我对主要概念的一般架构概述感到好奇,以便更好地理解OpenResty如何与(或代替)Erlang / OTP一起使用。

1 个答案:

答案 0 :(得分:0)

这两个链接部分回答了这个问题:

https://github.com/openresty/lua-nginx-module/blob/master/README.markdown

  

Lua解释器或LuaJIT实例在所有人之间共享   请求在单个nginx工作进程中但请求上下文是   使用轻量级Lua协同程序隔离。

     

加载的Lua模块在nginx工作进程级别中持续存在   在一个小的内存空间......

https://github.com/openresty/lua-nginx-module/wiki/Introduction

  

...对于每个传入的请求,lua-nginx-module创建一个协程来运行用户代码来处理请求,并且在请求处理过程完成时将销毁协同程序。每个协程都有自己独立的全局环境,它继承了共享的只读公共数据。

     

... lua-nginx-module可以以非常低的内存开销处理数万个并发请求。根据我们的测试,如果使用LuaJIT,lua-nginx-module中每个请求的内存开销仅为2 KB甚至更小。