複数のリモートサーバーにRailsアプリケーションをインストールしました。 Railsアプリケーションは金融取引を生成し、すべてのリモートサーバーがこのメタデータをリレーショナルDBに格納されている中央ハブに送信したいと考えています。トランザクションに関する他の処理タスクがあるかもしれません。これらのサーバーは私のコントロール下にないので、インターネットへの常時接続を保証することはできません。彼らは毎日少なくとも2時間はインターネットに接続されます。RabbitMQを使用してリモートサーバートランザクションを同期する
このようなアーキテクチャにはRabbitMQは便利ですか? Exchangeとキューは、リモートサーバー(Producer Railsアプリケーションと一緒に)にインストールされるでしょうか?各リモートサーバーごとに1つのコンシューマサービスを用意するか、すべてのリモートサーバー/キューに対して1つの中央コンシューマサービスを用意することはできますか?私はRabbitMQのの世界では、このようなnoobのだ以来
ボーナス質問:
- 私は消費者がキューからデータを消費することができるように、リモートマシン上で開く必要があるだろうかポート?
- ダイレクトエクスチェンジを使用します。
- 消費される前にキューに蓄積されるメッセージの数はいくつですか?数日(最悪のシナリオ)の間にリモートサーバーがインターネットに接続されないと、物事がひどくなる可能性はありますか? によりシステムの多額の切断性質
ご返信ありがとうございます。私がRabbitMQとデータベースを考えていたもう一つの理由は、個人的な好みのためでした。私がデータベースの同期に入ると、データベースの専門家になる必要があります。私はアプリケーションエンジニアであり、むしろ私はアプリケーションドメインに属するRabbitMQを知っていました。また、私はデータをもっとコントロールできると思っています。おそらく、私はそれを処理しているうちにその一部を破るでしょう。とにかく、私は1日約2万件のトランザクションを見ています...メタデータは1トランザクションあたり1kbの範囲にあります。 –
これは、データベースの非常に簡単な使用です。志望するアプリケーションエンジニアとしては、少なくともデータベースの経験は少ししかありません(大多数のアプリケーションでデータベースを使用していないのですか?)。あなたが個人的な好みのために間違った選択をした場合、あなたは間違った選択をしています。繰り返しますが、私はRabbitMQのアプローチを推奨します(トランザクションのカウントとペイロードが表示されるようになりました)。 – jleach