web-dev-qa-db-ja.com

250,000 msg / sを超えるRabbitMQ / ActiveMQまたはRedis

通常、redisとメッセージキューソフトウェアはさまざまな目的で使用されますが、次のユースケースでredisを使用することの長所と短所を尋ねたいと思います。

  • イベントコレクターのグループは、着信メッセージをキー/値として書き込みます。コンシューマーは処理されたキーをフェッチおよび削除します
  • 負荷は100kmsg/sから始まり、短期間(数か月など)で250kを超えると、100万msg/sを達成することを目標としています。
  • 永続性は厳密には必要ありません。失敗時にジャーナルされていないメッセージを失っても大丈夫です
  • パフォーマンスは非常に重要です(したがって、負荷を処理するために必要なシステムの数)
  • メッセージは、到着した順序で処理する必要はありません。

従来のメッセージキューイングソフトウェアよりもredisが選択されるようなユースケースを知っていますか?それとも他のことを考えますか?

注:私もこれを見ましたが、役に立ちませんでした: リアルタイムアプリケーションの初心者-Node.JS + RedisまたはRabbitMQ->クライアント/サーバーの方法は?

ありがとう

23
anonymous

あなたの要件を考えれば、私はRedisを試してみます。他のソリューションよりもパフォーマンスが高く、永続性の特性をよりきめ細かく制御できます。使用している言語によっては、シャーディングされたRedisクラスターを使用できる場合があります(コンシステントハッシュをサポートするRedisバインディングが必要です-すべてがサポートしているわけではありません)。これにより、指定した音量にスケールアウトできます。いくつかの基本的なテストで、ラップトップで10k /秒を見ました。

キューのセマンティクスが必要な場合は、Redisのリスト操作(書き込みにはLPUSH、読み取りにはBRPOP)を使用することをお勧めします。

去年の春にメッセージキューとしてRedisを本番環境にデプロイした元クライアントがいて、彼らはそれにとても満足しています。

19
James Cooper