私はメッセージ キューとして Redis を使用してきましたが、もっと良いものはないのではないかと突然思いつきました。
返信内容:
豆の木を使用しています、qpsは約1000です
単純にキュー サービスを実行する場合は、Beantalkd (小規模でパフォーマンスが良い) をお勧めします。高可用性と大容量を考慮する場合は、kafka を使用できます。
まずは既存のソリューションの不十分な点を指摘してみてはいかがでしょうか?
この問題はPHPとは関係ないような気がしますが?メッセージ キューの選択では、ビジネス シナリオをより考慮します:
* 1 秒あたりのメッセージ数などのパフォーマンス。1 秒あたり数万のメッセージがある場合、Beanstalk と RabbitMQ を直接使用することはできません。
* 信頼性、メッセージが失われることは許されますか?持続性は必要ですか?
* 高可用性、ダウンタイムは許容できますか?
* 分散かどうか
* 運用および保守コスト、会社の開発 (運用および保守) にこのメッセージ キューを保守する能力があるかどうか
* クライアント サポート、これは言語レベルのものです。たとえば、Kafka は非常に優れたメッセージ キューですが、その PHP クライアントはあまりよく書かれておらず、自分で書き直すのは難しいため、選択するときは注意が必要です。
これらの要素を比較検討した後、選択方法を決定できます。
どのようなメッセージ キューがあるか: メッセージ キュー
パフォーマンスの比較:
http://bravenewgeek.com/dissecting-message-queues/
redis、rabbitmq
Redis と RabbitMQ を使用する
これはアプリケーションのシナリオによって異なりますが、一般に、redis を使用するのは比較的簡単ですが、メッセージが正常に処理されず、他のプロセスがメッセージを処理できる状況、つまりメッセージを確認するプロセスがない状況を Redis は認識できません。メッセージの処理が完了しました。
完全なメッセージ キューが必要な場合は、私が使用したものには、gearman と Rabbitmq が含まれます。どちらも優れています。
php-レスク
ギアマン。ネットワーク間でのメッセージ損失が必要ない場合は、kafka を選択することもできます
ワーカー