クラスターを実現すると、その使用による生産性が1.5倍増加することがわかりました。これは、わずかな労力を費やしただけでも、悪くないことです。 しかし、私はそこで停止せず、特定のアプリケーションからクラスターを開始する役割を担うコードを解くために、クラスターを操作するための便利なCLIを作成することにしました。 さらに、クラスターを悪魔化して、プロセス内で静かにハングアップし、倒れたワーカーを増やし、ログに書き込み、他の人の気を散らさないようにしたかったのです。
これは、 node-clusterize-cliの表示方法です。これは、アプリケーションコードに影響を与えないコマンドラインユーティリティです。 元のクラスターモジュールNodeJSに基づいています。
仕事の仕組み
モジュールはシンプルです-まず、必要なワーカー数(デフォルトではコアごとに2つのプロセス)が開始するマスタープロセスを開始し、CLIインターフェイスからマスタープロセスのバインドを解除し、デーモンとして動作させます。 さらに、マスタープロセスはワーカーで発生する可能性のあるエラーメッセージをリッスンし、落ちた仲間を自動的に再起動します。 「クラスター」と呼ばれるNodeJS APIのモジュールは、各リクエストがランダムプロセスで処理されることを保証します。
使用する
一般に、すべては些細なことです:
# $ npm i -g node-clusterize-cli # $ clusterize --app ./app.js --workers 32 --log ./cluster.log
また、便宜上、実行中のクラスターのリストを取得する方法と、それらを強制終了する方法があります。
# , `ps -eo pid,comm | grep "clusterize master"` $ clusterize list 53416 app.js # `kill -9 CLUSTER_PID` $ clusterize kill 53416
詳細については、GitHubの
clusterize -h
およびreadmeのツールチップを参照してください。
githubのリポジトリ
負荷テストログab