
11.3
パイプラインとタスク分散パターン
405
$ node ventilator 4 f8e966d1e207d02c44511a58dccff2f5429e9a3b
上のコマンドを実行するとベンチレータが処理を開始します。長さ最長
4
文字の考えられるすべての
単語を生成し、指定したチェックサムと合わせて予め起動しておいた各ワーカーへ分配します。計算
結果は、一致するものが得られればシンクアプリケーションのターミナルに表示されます。
11.3.2
パイプラインと
AMQP
の競合コンシューマ
前の節では、並列パイプラインをピアツーピア方式の場合に実装する方法を見ました。今度は、
RabbitMQ
などの本格的なメッセージブローカにこのパターンを適用する方法を探っていきます。
11.3.2.1
ポイントツーポイント通信と競合コンシューマ
ピアツーピア構成の場合、パイプラインはイメージしやすいとても単純明快な概念です。しかしメッ
セージブローカが間に入るとシステムの各種ノードの関係を理解するのが少し難しくなります。ブロー
カ自体は通信の仲介者として働きますが、その向こうでメッセージをリッスンしているのが何者かわか
らない場合があります。たとえば、
AMQP
を使ってメッセージを送信する場合、宛先に直接届けるの
ではなく交換器に送ってそれがキューに入ります。最終的にメッセージの配送経路を決定するのはブ
ローカであり、交換器に定義されている規則とバインド、宛先キューに基づいてそれを行います。
AMQP
などのシステムを使