RabbitMQ

实现了AMQP协议(高级消息队列协议),遵循Mozilla Public License开源协议。

使用场景:数据投递、非阻塞操作、推送通知、发布/订阅模式、异步处理、工作队列

实现系统自动化、可访问性和伸缩性

开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,或者简单地将作业排队以便让分布式服务器进行处理。

a)整体架构模型

该图要注意的是 队列中的消息只会被一个消费者消费

 b)队列(Queue)

RbMQ的消息只能存在队列中。生产者生产消息最终投递到队列中,消费者从队列中获取消息并消费。

 c)交换器(Exchange)

生产者将消息发送到Exchange,由交换器将消息路由到一个或者多个队列中。路由不到,则丢弃。

 d)  路由键(Routing Key)

生产者将消息发给交换器的时候,会指定路由键,用来指定这个消息的 路由规则,路由键需要与交换器类型和绑定键联合使用才能最终生效。

在交换器类型和绑定键固定的情况下,生产者在发送消息给交换器时,通过路由键来决定消息流向哪里。

 e)  绑定(Binding)

通过绑定 把交换器和队列关联起来,在绑定的时候通常会绑定一个绑定键,这样RbMQ就知道如何正确地将消息路由到队列了。

 

 posted on 2020-08-18 14:53  絆τ  阅读(173)  评论(2编辑  收藏  举报