【问题标题】:What are the architectural differences between Erlang/OTP and OpenResty?Erlang/OTP 和 OpenResty 之间的架构差异是什么?
【发布时间】:2016-06-30 04:40:03
【问题描述】:

在 Erlang/OTP 中,我读到了轻量级进程、参与者模型和监督者对于创建可靠服务的重要性。这与 OpenResty(master/worker、异步 IO、嵌入式 Lua)相比如何?

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

【问题讨论】:

    标签: erlang-otp openresty


    【解决方案1】:

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

    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,甚至更小一半。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2015-12-24
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多