さまざまなマシンにインストールされたLogstash荷送人によってログ情報を収集し、1つのelasticsearchサーバーでデータを中央でインデックス化し、Kibanaをグラフィカルレイヤーとして使用するアーキテクチャを定義しています。 Logstashの配送業者とelasticsearchの間に配信を許可するための信頼できるメッセージングシステムが必要です。 Logstashの荷送人とelasticsearchの間、またはその逆でデータブローカー/メッセージングシステムとしてRabbitMQよりもRedisを選択する場合、どのような要因を考慮する必要がありますか?
RedisとRabbitMQの両方を評価した後、以下の理由からRabbitMQをブローカーとして選択しました。
スケーリングに関して、RabbitMQには、冗長ブローカー環境を実装するためにロードバランサーに加えて使用できる組み込みのクラスター実装があります。
RabbitMQクラスターはアクティブですか、アクティブですか?
次に、RabbitMQを使用する場合の弱点について説明します。
ここで問題をフォローできます: https://github.com/josegonzalez/python-beaver/issues/32
そして、ここでプルリクエストを確認してください: https://github.com/josegonzalez/python-beaver/pull/324
さらに質問がある場合は、お気軽にコメントをお寄せください。
Redisは、一部の基本メッセージブローカー機能を備えているにもかかわらず、キー値データストアとして作成されます。
RabbitMQはメッセージブローカーとして作成されます。自然に多くのメッセージブローカー機能があります。
私はこのトピックに関するいくつかの研究を行ってきました。パフォーマンスが重要で永続性が重要でない場合は、RabbitMQが最適です。 Redisは、別の目的で開発されたテクノロジーです。
以下はRedisでRabbitMQを使用するための長所のリストです:
RabbitMQを使用するためのいくつかの短所:
私は同じことを疑問に思ってきました。 Logstashの人々による以前の推奨事項は、RabbitMQよりもRedisを推奨しています( http://logstash.net/docs/1.1.1/tutorials/getting-started-centralized )、しかし、メモのそのセクションはもはや存在しません現在のドキュメントでは、ブローカーを使用してスパイクに対処するための一般的な注意事項がありますが、ここで https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html 。
また、RabbitMQを非常に喜んで使用していますが、AMQPプロトコルはロギングのユースケースでは多すぎる可能性があるため、現在Redisブローカーを調査しています。
簡単な質問:
意見の範囲では、私はブローカーとしてredisを実行し、それを嫌っていました。もちろん、それはredis(製品自体の問題ではない)での私の経験ではなかったかもしれませんが、それはパイプラインの最も弱いリンクであり、最も必要なときに常に失敗しました。