ホームページ  >  記事  >  バックエンド開発  >  大規模な PHP アプリケーションの場合、メッセージ キューには通常どのアプリケーションが使用されますか?

大規模な PHP アプリケーションの場合、メッセージ キューには通常どのアプリケーションが使用されますか?

WBOY
WBOYオリジナル
2016-09-24 09:04:041670ブラウズ

私はメッセージ キューとして Redis を使用してきましたが、もっと良いものはないのではないかと突然思いつきました。

返信内容:

豆の木を使用しています、qpsは約1000です 単純にキュー サービスを実行する場合は、Beantalkd (小規模でパフォーマンスが良い) をお勧めします。高可用性と大容量を考慮する場合は、kafka を使用できます。 まずは既存のソリューションの不十分な点を指摘してみてはいかがでしょうか? この問題はPHPとは関係ないような気がしますが?メッセージ キューの選択では、ビジネス シナリオをより考慮します:

* 1 秒あたりのメッセージ数などのパフォーマンス。1 秒あたり数万のメッセージがある場合、Beanstalk と RabbitMQ を直接使用することはできません。
* 信頼性、メッセージが失われることは許されますか?持続性は必要ですか?
* 高可用性、ダウンタイムは許容できますか?
* 分散かどうか
* 運用および保守コスト、会社の開発 (運用および保守) にこのメッセージ キューを保守する能力があるかどうか
* クライアント サポート、これは言語レベルのものです。たとえば、Kafka は非常に優れたメッセージ キューですが、その PHP クライアントはあまりよく書かれておらず、自分で書き直すのは難しいため、選択するときは注意が必要です。

これらの要素を比較検討した後、選択方法を決定できます。
どのようなメッセージ キューがあるか: メッセージ キュー
パフォーマンスの比較: bravenewgeek.com/dissec redis、rabbitmq Redis と RabbitMQ を使用する これはアプリケーションのシナリオによって異なりますが、一般に、redis を使用するのは比較的簡単ですが、メッセージが正常に処理されず、他のプロセスがメッセージを処理できる状況、つまりメッセージを確認するプロセスがない状況を Redis は認識できません。メッセージの処理が完了しました。
完全なメッセージ キューが必要な場合は、私が使用したものには、gearman と Rabbitmq が含まれます。どちらも優れています。 php-レスク ギアマン。ネットワーク間でのメッセージ損失が必要ない場合は、kafka を選択することもできます ワーカー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。