RabbitMQ 的使用场景有哪些?

2020-05-28 10:49发布

2条回答
猫的想法不敢猜
2022-01-07 11:05


rabbitMQ 的使用场景,其实也就是 消息队列的使用场景。


1. 解耦,比如说系统A会交给系统B去处理一些事情,通过将A,B中间加入消息队列,A将要处理的事情交给消息队列 ,B的输入来源于与消息队列

2.有序性。先来先处理,比如一个系统处理某件事需要很长一段时间,但是在处理这件事情时候,有其他人也发出了请求,可以把请求放在消息队里,一个一个来处理

3.消息路由:按照不同的规则,将队列中消息发送到不同的其他队列中

4.异步处理: 处理一件事情,需要 甲先做A , 然后做乙丙丁分别处理B C D ,B C D这三件事情在A之后,但是相互之间没有关联。此时甲处理A1之后,把事件发送到消息队列里边,乙丙丁接受到事件之后 分别处理B1 C1 D1。

在甲处理能力比较大,BCD处理能力比较小的时候,这样做,对于A的提升能力比较大


对于rabbitMQ来说

场景1:单发送单接收

使用场景:简单的发送与接收,没有特别的处理。

场景2:单发送多接收

使用场景:一个发送端,多个接收端,如分布式的任务派发。为了保证消息发送的可靠性,不丢失消息,使消息持久化了。同时为了防止接收端在处理消息时down掉,只有在消息处理完成后才发送ack消息。

场景3:Publish/Subscribe

使用场景:发布、订阅模式,发送端发送广播消息,多个接收端接收。

场景4:Routing (按路线发送接收)

使用场景:发送端按routing key发送消息,不同的接收端按不同的routing key接收消息。

场景5:Topics (按topic发送接收)

使用场景:发送端不只按固定的routing key发送消息,而是按字符串“匹配”发送,接收端同样如此。


一周热门 更多>