首頁  >  文章  >  後端開發  >  大型的 PHP應用 ,通常用什麼應用來做 訊息佇列 的?

大型的 PHP應用 ,通常用什麼應用來做 訊息佇列 的?

WBOY
WBOY原創
2016-09-24 09:04:041670瀏覽

一直在用Redis 做訊息隊列,忽然想到,會不會有更好的呢?

回覆內容:

我們用beanstalk,qps1000左右 如果是單純做隊列服務建議beanstalkd(小巧、性能好),如果考慮到高可用、海量可以用kafka。 不如你先指出現有方案有哪些面向不不夠好。 感覺這個問題跟 PHP 沒啥關係?訊息佇列選用更多考慮業務的場景:

* 效能,例如每秒有多少訊息啊,如果你每秒有幾萬的訊息量,那 Beanstalk、RabbitMQ 之列的就不能拿來直接用了。
* 可靠性,訊息是否允許遺失?是否需要持久化?
* 高可用,是否可以容忍宕機?
* 是否需要分散式
* 運維成本,你們公司的開發(維運)是否有能力維護好這個消息隊列
* 客戶端支持,這個才是語言層面的東西。例如 Kafka 是個很好的訊息佇列,但是他的 PHP 用戶端寫的不太好,自己重新寫也比較難,那麼在選型的是否就要慎重。

在權衡這些因素以後,才能決定如何選擇。
有哪些消息隊列: Message queue
性能對比:bravenewgeek.com/dissec redis,rabbitmq 用redis,rabbitmq這兩個 這個要看你的應用場景,一般來說用redis比較簡單,但是redis不能實現訊息沒有正常處理,其他進程仍然能夠處理這個訊息的情況,也就是沒有對訊息有一個處理完成確認的過程。
如果要完整的訊息佇列,用過的有:gearman,rabbitmq, 都是不錯的。 php-resque gearman。如果要求跨網路不丟訊息還可以選擇kafka workerman
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn