当前位置:  开发笔记 > 编程语言 > 正文

大型的 PHP应用 ,通常使用什么应用做 消息队列 的?

一直在用Redis做消息队列,忽然想到,会不会有更好的呢?
一直在用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
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有