守听 发表于 2024-8-8 06:33:27

RabbitMQ知识总结(根本原理+高级特性)

文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
文章收录在网站:http://hardyfish.top/
https://i-blog.csdnimg.cn/direct/b9396c75269d41439fd5d1e4bc079403.png
根本原理

消息的可靠性投递
   RabbitMQ 消息的投递路径为:


[*]生产者 ------> 交换机 ------> 队列 ------> 消费者
在 RabbitMQ 工作的过程中,每个环节消息都有大概传递失败,可以通过以下三种模式来监听消息时候投递成功:


[*] 确认模式(Confirm):可以监听消息是否从生产者成功传递到交换机。
[*] 退回模式(Return):可以监听消息是否从交换机成功传递到队列。
[*] 消费者消息确认(Consumer Ack):可以监听消费者是否成功处置处罚消息。
高级特性

消费端限流
   RabbitMQ 提供了一种 Qos(Quality Of Service,服务质量)服务质量保证功能。
即在非主动确认消息的前提下,如果一定数目的消息未被确认之前,不再进行消费新的消息。
通过消费端限流的方式限制消息的拉取速率,达到保护消费端的目的。
不公中分发
   在 RabbitMQ 中,多个消费者监听同一条队列,则队列默认采用的轮询分发。
但是在某种场景下这种计谋并不是很好,比方消费者1 处置处罚使命的速率非常快,而其他消费者处置处罚速率却很慢。


[*]此时如果采用公中分发,则消费者1 有很大一部门时间处于空闲状态。
[*]此时可以采用不公中分发,即谁处置处罚的快,谁处置处罚的消息多。
消息存活时间
   可以设置消息的存活时间(Time To Live,简称TTL),单位是毫秒,当消息到达存活时间后还没有被消费,会被移出队列。
RabbitMQ 可以对队列的所有消息设置存活时间,也可以对某条消息设置存活时间。


[*]消息到达存活时间未被消费时,消息会被放入死信队列。
优先级队列
   RabbitMQ 优先级队列(Priority Queue)是一种特别的队列,它根据消息的优先级将其放置在队列中。
当消费者从队列中获取消息时,它将按照优先级从高到低的次序获取消息。
优先级队列可以用于处置处罚一些必要按照优先级处置处罚的消息,比方日志记录、使命调度等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: RabbitMQ知识总结(根本原理+高级特性)