RabbitMQ如何实现高效的工作队列管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2586个文字,预计阅读时间需要11分钟。
每日一句:如果你追随着我的梦幻,过早会被真正的我打败。https://www.ylcoder.top/post/1649241412 概述:工作队伍(又称任务队伍)的主要思想是避免立即执行资源密集型任务,我们可以在安中进行。
每日一句如果你执意追逐我的幻影,迟早会被真正的我打败。
www.ylcoder.top/post/1649241412
概述工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,我们可以在安排任务之后再执行。
我们把任务封装为消息并将其发送到队列,在后台运行的工作进程将弹出任务,并最终执行作业。
当有多个工作线程时,这些工作线程将一起处理这些任务。
轮询分发消息在这里案例中我们会启动两个工作线程,一个消息发送线程
源码:github.com/yltrcc/rabbitmq-demo/tree/master/demo2/src/main/java/com/yltrcc/demo
不公平分发轮询分发在某些场景下并不是很好。
例子:比如有两个消费者在处理任务,其中有1个消费者1处理任务非常快,另外一个消费者2处理速度很慢。
这个时候采用轮询分发,速度快的消费者1很大部分时间处于空闲状态,处理慢的消费者2一直在处理。
这种情况下其实不太好,但是RabbitMQ不知道,它依然很公平的进行分发。
为了避免这种情况,我们可以设置参数
它的意思是:这个任务我还没有处理完或者我还没有应答你,你先别分配给我,我目前只能处理一个任务,然后RabbitMQ就会把任务分配给没有那么忙的那个空闲消费者。
本文共计2586个文字,预计阅读时间需要11分钟。
每日一句:如果你追随着我的梦幻,过早会被真正的我打败。https://www.ylcoder.top/post/1649241412 概述:工作队伍(又称任务队伍)的主要思想是避免立即执行资源密集型任务,我们可以在安中进行。
每日一句如果你执意追逐我的幻影,迟早会被真正的我打败。
www.ylcoder.top/post/1649241412
概述工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,我们可以在安排任务之后再执行。
我们把任务封装为消息并将其发送到队列,在后台运行的工作进程将弹出任务,并最终执行作业。
当有多个工作线程时,这些工作线程将一起处理这些任务。
轮询分发消息在这里案例中我们会启动两个工作线程,一个消息发送线程
源码:github.com/yltrcc/rabbitmq-demo/tree/master/demo2/src/main/java/com/yltrcc/demo
不公平分发轮询分发在某些场景下并不是很好。
例子:比如有两个消费者在处理任务,其中有1个消费者1处理任务非常快,另外一个消费者2处理速度很慢。
这个时候采用轮询分发,速度快的消费者1很大部分时间处于空闲状态,处理慢的消费者2一直在处理。
这种情况下其实不太好,但是RabbitMQ不知道,它依然很公平的进行分发。
为了避免这种情况,我们可以设置参数
它的意思是:这个任务我还没有处理完或者我还没有应答你,你先别分配给我,我目前只能处理一个任务,然后RabbitMQ就会把任务分配给没有那么忙的那个空闲消费者。

