1

Erlang/OTP で、軽量プロセス、アクター モデル、およびスーパーバイザーが信頼できるサービスを作成する上でいかに重要であるかを読みました。これは OpenResty (マスター/ワーカー、非同期 IO、組み込み Lua) と比べてどうですか?

OpenResty が Erlang/OTP と一緒に (または代わりに) どのように使用されるかをよりよく理解するために、主な概念に関する一般的なアーキテクチャの概要に興味があります。

4

1 に答える 1

0

これらの 2 つのリンクは、質問に部分的に答えます。

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/はじめに

...着信リクエストごとに、 lua-nginx-module はコルーチンを作成してユーザーコードを実行し、リクエストを処理します。コルーチンは、リクエスト処理プロセスが完了すると破棄されます。すべてのコルーチンには独自の独立したグローバル環境があり、共有された読み取り専用の共通データを継承します。

... lua-nginx-module は、非常に低いメモリ オーバーヘッドで数万の同時リクエストを処理できます。私たちのテストによると、lua-nginx-module の各リクエストのメモリ オーバーヘッドはわずか 2 KB で、LuaJIT を使用した場合は半分以下です。

于 2016-03-22T00:57:00.683 に答える