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

在Erlang/OTP中,我了解到轻量级进程、Actor模型和Supervisor对于创建可靠的服务非常重要。那么这与OpenResty(主/从模式、异步IO、嵌入式Lua)相比如何呢?

我对主要概念的一般架构概述很感兴趣,以更好地了解当与Erlang/OTP共同使用(或替代)时应如何使用OpenResty。

点赞
用户841803
用户841803

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

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

2016-03-22 00:57:00