RabbitMQ的简介以及几种模式

RabbitMQ主要使用的场景

    程序解耦利器

    流量削峰

    异步处理

RabbitMQ的核心概念

VirtualHost

    在RabbitMQ中,VirtualHost起到数据隔离的作用。给某一个用户绑定特定的virtualHost,那么这个用户只能在这个virtualHost中工作。常见的场景是,我们的测试环境和生产环境同时使用同一台RabbitMQ服务器,我们就可以通过VirtualHost对生产和测试环境进行逻辑上隔离。

RabbitMQ管理界面,用户绑定VirtualHost
RabbitMQ服务器创建虚拟机

Connection

    通过字面字面意思理解,就是连接RabbitMQ服务器的连接。

展示RabbitMQ所有的服务连接

Exchange

    在RabbitMQ里面,我们将它称之为交换机。当我们的生产者发送一个消息,这个消息首先会进入Exchange里面,根据交换机指定的规则绑定对应的Key,把消息发送到对应的Key里面。

展示RabbitMQ所有的Exchange

Channel

    在connections下面会建立许多的Channel进行通信。

Queue

    在RabbitMQ服务器,生产者发送的消息,没有对应的消费者进行消息,RabbitMQ服务器就会把消息存储在队列里面(临时存储),等待消费者进行消费。

Binding

    就是将已创建的队列、交换机进行绑定,通过不同的方式进行绑定,我们可以实现RabbitMQ几种工作模式。

RabbitMQ的几种工作模式

Simple工作模式

    最简单,最常用的模式。一个生产者将消息发送到消息队列,等待消费者进行消费,消费者如果来不及消费,这些信息会保存在队里里面。(消费者)

简单模式示意图

work工作模式

    一个消息只能被一个消费者消费,比如生产者向队列发送1-100的数字,规定消费者A只能消费奇数,消费者B只能消费偶数。

work模式示意图

订阅模式,Publish/Subscribe

    生产者生产消息被路由投递到多个队列,一个消息被多个消费者获取。比如发报纸,报社(生产者)通过分发规则(路由)将报纸投递给多个邮递员(队列),由邮递员讲报纸发送给订阅用户(消费者)的手中。

订阅模式示意图

路由模式

    一个消息被多个消费者获取,并且消息的目标队列可被生产者进行指定。比如,生产者发送1-100数字,指定消费者A只能消费奇数,消费者B只能消费偶数。

路由模式示意图

话题模式,Topic

   一个消息被多个消费者获取,消息的目标队列可以用BindKey一通配符(#:一个或多个词,*:一个词)的方式进行指定。

话题模式示意图

你可能感兴趣的:(RabbitMQ的简介以及几种模式)