2017-06-11 5 views
0

質問: Microservice Architecture dependencyクラスタ化されたMicroserviceアーキテクチャを使用するときに使用するパターン。Natsが使用するパターン

私は動作するはずです指すように、その点に答えるが、読み込み時に受け取っ: https://nats.io/documentation/concepts/nats-req-rep/ それはすべての加入者recievesイベントのように感じている(そしてそのため、それを処理します)が、ちょうどその回答1人の加入者が存在します。インベントリマイクロサービスが購読しているupdate-inventory-event(リンクの例のように)をトリガーする注文イベントを投入すると、インベントリに起因するクラスタ化されたenvでの作業は失われます。マイクロサービスインスタンスの量

Natsを使用してこのシナリオを解決するにはどうすればよいですか?

ありがとうございます!

答えて

3

NATS.ioは、キューグループを使用して、この機能をサポートしています。同じキュー名を持つ

すべてのサブスクリプションは、キューグループを形成します。 各メッセージはキューグループごとに1つのサブスクライバにのみ配信され、 はキューイングの意味を使用します。キューグループは、必要な数だけ持つことができます。 通常の契約者は引き続き期待どおりに動作します。

(サンプルは、Node.jsのある)キューグループを使用してサービスを接続します

https://github.com/nats-io/node-nats#basic-usage

https://github.com/nats-io/node-nats#queue-groups

nats.subscribe('foo', {'queue':'job.workers'}, function() { 
    received += 1; 
}); 

は、クライアントはライブラリ提供の要求メソッドを使用します

// Request for single response with timeout. 
nats.requestOne('help', null, {}, 1000, function(response) { 
    // `NATS` is the library. 
    if(response.code && response.code === NATS.REQ_TIMEOUT) { 
    console.log('Request for help timed out.'); 
    return; 
    } 
    console.log('Got a response for help: ' + response); 
}); 
関連する問題