2012-04-23 7 views
0

少数(3つ以上)のアプリケーション間でデータを送信(同期)する必要があります。メッセージブローカーは、いくつかの問題を解決しなければなりません。少数(3つ以上)のアプリケーション間のデータ同期にメッセージブローカーが必要

  1. 未知数の受信者に1つのメッセージをブロードキャストします。
  2. 成功の赤いコントロール。アプリケーションは、このアプリケーション(接続)に割り当てられたタイムアウトの後にのみ、1回だけ、または1回だけメッセージを読むことができます。または、何らかの方法でサーバ/ MBの負荷が高い状態でクライアント側で解決してください
  3. すべての受信者が成功した後にメッセージを削除すると、メッセージが読み取られます。それは中央のアプリでクライアント側で解決することができますが、ネイティブの可能性が有用だろう。

システム全体にどれだけのアプリケーションが存在しているかを知る必要があるアプリケーションは1つのみ、またはメッセージブローカの責任に移行することができます。

私はすでに試しました: Amazone SQS - これは純粋なキューであり、高レベルの楽器はありません。 RabbitMQ - メッセージを削除せずに読むことはできません。 (他にもあるかもしれません)

答えて

0

ラビットMは完璧です。

  1. トピックへのメッセージとこのメッセージは、接続された/バインドされたすべてのキューに重複しています。キューを作成し、最初に接続/バインドする必要があります。
  2. 各アプリケーションは独自のメッセージコピーで動作します。
  3. メッセージは削除せずに読み取ることができます。 AMQP_AUTOACKパラメータなしでキューを作成する必要があり、amqp.auto_ackはphp.iniで0にする必要があります
関連する問題