RabbitMQ

一、应用场景

  1. 异步处理
  2. 应用解耦
  3. 流量削峰

二、系统架构

 

 

概念说明:

Broker:提供一种传输服务,角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输。

Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。

Queue:消息的载体,每个消息都会被投到一个或多个队列。

Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。

Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

vhost:虚拟主机,一个broker里可以有多个vhost,用作不同用户的权限分离。

Producer:消息生产者,就是投递消息的程序。

Consumer:消息消费者,就是接受消息的程序。

Channel:消息通道,在客户端的每个连接里,可建立多个channel。

 

RabbitMQ常用的Exchange Type有三种:fanout、direct、topic。

fanout:把所有发送到该Exchange的消息投递到所有与它绑定的队列中。(子网广播,最快)

 

direct:把消息投递到那些binding key与routing key完全匹配的队列中。(完全匹配、单播)

 

 

topic:将消息路由到binding key与routing key模式匹配的队列中。

 

 

posted @ 2018-09-25 21:21  Exps幻想  阅读(118)  评论(0编辑  收藏  举报