作者处于学习阶段,刚刚完成RabbitMQ的学习,作为学生,我会用更通俗的说法,来叙述自己对RabbitMQ的了解。愿各位大佬看到有见解错误的地方和叙述不好的地方,能够帮忙纠正。来帮助大家更加深入的了解RabbitMQ。
一、RabbitMQ的分发机制
RabbitMQ有三种分发机制:轮询分发、不公平分发、预值分发。
二、轮询分发
轮询分发是默认的分发方式。其实轮询分发的理论只是很容易去解释,假如有A,B,C三个消费者,第一次消息发给了A队列,那么下一次就会分发给B,C当中的一个,假如再分发给B之后,那么就会分发给C。再来消息就会分发给A。这种叫做轮训分发,也叫做公平分发。每个队列的工作量是相同的,不会忘记谁,或者一直使用谁。
三、不公平分发
举一个例子,如果轮训分发的话,消费者A处理任务很快,而消费者B很慢。如果使用轮询分发,就会导致消费者A处于空闲状态,而消费者B却在一直干活。而如果使用了不公平分发,就可将任务发给空闲的消费者,而不是一直在那里等来等去。
如何设置为不公平分发

四、预取值分发
例如:channel.basicQos(5),就是设置该信道预取5条消息,当接受5条消息后,就将不再应答后续的消息,而内部传参的数字就是预取值的数量(要求大于1)

本文介绍了RabbitMQ的三种消息分发机制:轮询分发、不公平分发和预取值分发。轮询分发确保每个消费者均匀接收消息;不公平分发则根据消费者处理速度动态分配任务,提高效率;预取值分发允许消费者预先获取一定数量的消息,提高吞吐量。通过调整这些机制,可以优化RabbitMQ在不同场景下的性能。
3602

被折叠的 条评论
为什么被折叠?



