これは、rabbitmqのキューイングとノードjsのマスター/ワーカースレッドをどのように組み合わせるかについて、より多くの知識を得るためです。ノードjsワーカースレッドとrabbitmqコンシューマは同じですか?
1
A
答えて
1
Node.jsマスターワーカースレッドはrabbitmqキューイングと異なり、rabbitmqは、ワーカーがフリーであるときにワーカープロセスによって消費されるようにタスクをキューに格納する機能を提供します。これらの2つを組み合わせると、非常に具体的なユースケースがあり、一般的には必要ありません。
これら2つの組み合わせの実装には、主にnode-amqp clientとclusterが含まれています。クラスタは、マスターワーカースレッドにapiを提供するノードのデフォルト機能です。 rabbitmqを使用しないと、一般的に1つのマスタープロセスを使用してタスクを配布します。つまり、すべてのワーカープロセスにタスクを送信し、ワーカースレッドはタスクを受信するのを待ちます。
rabbitmqを使用したいので、最初にsubscribe
を交換する必要があります。すべてのタスクを待機し、タスクを受け取ったらそれをワーカープロセスに渡します。以下は説明の要旨を提供する小さなスニペットです。
connection.on('ready', function() {
connection.exchange('exchange-name', function(exchange) {
_exchange = exchange;
connection.queue('queue-name', function(queue) {
_queue = queue;
// Bind to the exchange
queue.bind('exchange-name', 'routing-key');
// Subscribe to the queue
queue
.subscribe(function(message) {
// When receiving the message call the worker thread to complete the task
console.log('Got message', message);
queue.shift(false, false);
})
.addCallback(function(res) {
// Hold on to the consumer tag so we can unsubscribe later
_consumerTag = res.consumerTag;
})
;
});
});
});
マスターとワーカー間のメッセージ交換:マスタワーカーにメッセージを直接送信する代わりに、成功メッセージをキューに入れる必要があります。マスターは、確認と成功メッセージを受け取るためにそのキューを待ち受けます。
関連する問題
- 1. 同じキューのRabbitMQ複数のコンシューマ
- 2. RabbitMQ "Zombie"コンシューマ
- 3. NGINXのAMQP/RabbitMQコンシューマ
- 4. PHP RabbitMQコンシューマ:プリフェッチ1
- 5. RabbitMQ httpsドメインのrabbitMQへのコンシューマ接続
- 6. RabbitMQ、ドッカー、シングルキュー、複数のコンシューマ
- 7. 同じノードjsプロセスでgrpcサーバーとクライアントを実行
- 8. ノードGETとPOSTのルートのJS Expressと同じもの
- 9. JS $ scope.somethingは関数と同じです
- 10. カサンドラの4ノード設定は、3ノード設定と同じです
- 11. JS内の同じノードで複数回appendChildを使用する
- 12. ワーカースレッドとコントローラスレッドの同期
- 13. 同期DBは、ノードJS ORM
- 14. ノードjsの同期は、HTTPS
- 15. RabbitMQコンシューマが追加されない
- 16. RabbitMQキューあたり1つのコンシューマ
- 17. Grails rabbitmqネイティブメッセージをコンシューマに送信
- 18. rabbitmq - コンシューマあたりのプリフェッチ数
- 19. Rabbitmq 1つのキューを複数のコンシューマ
- 20. 同じノード内のリソースマネージャーとノードマネージャーはできますか? [MapR]
- 21. nginxの:同じサーバー上で複数のノードのjsのアプリケーション
- 22. CLRワーカースレッドとワーカースレッドの違いは何ですか?
- 23. RabbitMQでコンシューマをグループ化するにはどうすればよいですか?
- 24. 同じRabbitMQサーバーで複数の環境が可能ですか?
- 25. ノードjsはすべてのクライアントアプリケーションで同じユーザーデータを表示しています
- 26. ノードjsのexports.installとは何ですか?
- 27. WindowsサービスとしてRabbitMQコンシューマを設定する
- 28. すべてのコンシューマが同じAPIを同じ方法で使用する場合、すべてのコンシューマ向けに1つのPactファイルが必要ですか?
- 29. J2EE Webサービスプロバイダとコンシューマは、同じEARになければなりませんか?
- 30. RabbitMQ - トピック交換 - 複数の同じトピック同じサブ科目