延时队列的几种实现方式 PHP使用Beanstalkd做任务队列是?
浏览量:1892
时间:2021-03-16 12:21:59
作者:admin
PHP使用Beanstalkd做任务队列是?
Beanstalk是一种高性能的消息队列中间件。这个博客将介绍beanstalk的用法。
1、首先让我们通过概念来了解Beanstalk的特性和工作场景。
Beanstalkd是一个轻量级消息中间件。它最大的特点是将自己定位为一个基于tube和job的工作队列
beanstalkd支持任务优先级、延迟、运行时间和保留时间,能够很好地支持分布式后台任务和定时任务处理。
其内部实现使用libevent,服务器客户端使用类似memcached的轻量级通信协议,具有高性能。
虽然它是内存队列,但beanstalkd提供了binlog机制。重新启动beanstalkd时,可以从本地binlog恢复当前任务状态。
管道:管道与主题类似。beanstalk中可以支持多个管道。每个管道都有自己的生产者和消费者。管道不会相互影响。
如何设计一个MQ消息队列?
1. 在上图中定义消息发送和消耗的过程
2。为消息定义消息协议,如ActiveMQ、stomp、XMPP等。定义消息协议,定义消息队列需要满足的场景
是否要保证消息的可靠性,必要时要保证存储的高可用性
是否支持同步和异步消息
是否要保证消息的顺序
是否需要延迟消息要支持
很多开源的实现功能可以参考详细信息。例如,rocketmq是高度可靠的,Kafka是高吞吐量的,但不是高度可靠的。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。