2016 - 2024

感恩一路有你

延时队列的几种实现方式 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是高吞吐量的,但不是高度可靠的。

延时队列的几种实现方式 延迟队列解决什么问题 延时消息队列

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。