RedisとRabbitMQの両方を評価した後、次の理由でブローカーとしてRabbitMQを選択しました。
- RabbitMQを使用すると、SSL証明書を使用してブローカーに送信するデータを暗号化することにより、組み込みのセキュリティレイヤーを使用できます。つまり、誰もデータを盗聴したり、重要な組織データにアクセスしたりすることはありません。
- RabbitMQは非常に安定した製品であり、ボトルネックになることなく、1秒あたりの大量のイベントと多くの接続を処理できます。
- 私たちの組織では、すでにRabbitMQを使用しており、RabbitMQの使用に関する内部知識が豊富で、シェフとの統合も準備されています。
スケーリングに関して、RabbitMQには、冗長ブローカー環境を実装するためにロードバランサーに加えて使用できるクラスター実装が組み込まれています。
私のRabbitMQクラスターはアクティブアクティブですか、それともアクティブパッシブですか?
ここで、RabbitMQを使用することの弱点について説明します。
- ほとんどのLogstashシッパーはRabbitMQをサポートしていませんが、一方、Beaverという名前の最良のシッパーには、問題なくRabbitMQにデータを送信する実装があります。
- Beaverが現在のバージョンでRabbitMQを使用して行っている実装は、(私の目的では)パフォーマンスが少し遅く、1つのサーバーからの3000イベント/秒の速度を処理できず、サービスがクラッシュすることがありました。
- 現在、RabbitMQのパフォーマンスの問題を解決し、Beaverシッパーをより安定させる修正に取り組んでいます。最初の解決策は、同時に実行でき、荷送人により多くの力を与えるプロセスを追加することです。2番目の解決策は、Beaverを変更して、データをRabbitMQに非同期で送信することです。これは、理論的にははるかに高速であるはずです。今週の終わりまでに両方のソリューションの実装を完了することを願っています。
ここで問題をフォローできます:https:
//github.com/josegonzalez/python-beaver/issues/323
そして、ここでプルリクエストを確認してください:https:
//github.com/josegonzalez/python-beaver/pull/324
さらに質問がある場合は、コメントを残してください。