1

の複数のインスタンスがRedisMqServer互いにつまずくという問題が発生しています。1 つのサーバーを停止すると、他のサーバーが停止します。これを実装した方法は明らかに間違っていますがRedisMqServer、この状況でどのように使用するべきかを特定できません。

当社のインフラストラクチャは次のもので構成されています。

  • マスター/スレーブ構成の 2 つの Redis サーバー
  • 負荷分散された 2 つの API インスタンス (以下「API A」と呼びます)
  • 負荷分散された 2 つの API インスタンス (以下「API B」と呼びます)

API A と B は、ServiceStack.Redis を使用RedisMqServerして同期メッセージと非同期メッセージの両方を相互に送信する 2 つの独立したアプリケーションです。ServiceStack のオープン ソース v3 リビジョンを使用しています。

RedisMqServer非同期通信は双方向で行われるため、両方の API が構成されています。

RedisMqServerが破棄されると、チャネルでメッセージが送信されますSTOPmq:topic:inその結果、サーバーはすべてのチャネルからサブスクライブを解除し、要求の処理を停止します。

ただし、このチャネルは API A と API B の両方で使用されているため、どちらかを停止するともう一方も停止します。

のインスタンスごとに単一の Redis サーバー インスタンスを使用することになっていますRedisMqServerか?

各 API は、常に単一の Redis サーバーにのみ接続していることに注意してください。スレーブ サーバーは、マスターが使用できなくなった場合にのみ接続されます。

4

1 に答える 1

1

これは v3 の Redis MQ での動作ですが、v4 の最新のものは期待どおりに動作し、破棄されたインスタンスRedisMqServerのみを停止します。RedisMqServer

于 2017-02-08T04:33:00.340 に答える