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

來源:互聯網
上載者:User
一直在用Redis 做訊息佇列,忽然想到,會不會有更好的呢?

回複內容:

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

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

在權衡這些因素以後,才能決定如何選擇。
有哪些訊息佇列: Message queue
效能對比:http://bravenewgeek.com/dissecting-message-queues/ redis,rabbitmq用redis,rabbitmq這兩個這個要看你的應用情境,一般來說用redis比較簡單,但是redis不能實現訊息沒有正常處理,其他進程仍然能夠處理這個訊息的情況,也就是沒有對訊息有一個處理完成確認的過程。
如果要完整的訊息佇列,用過的有:gearman,rabbitmq, 都是不錯的。php-resquegearman。如果要求跨網路不丟訊息還可以選擇kafkaworkerman
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.