美文网首页
rabbitmq消息队列介绍

rabbitmq消息队列介绍

作者: 奋斗live | 来源:发表于2019-06-17 17:33 被阅读0次
一、定义

rabbitmq是建立在AMQP上的企业消息系统。
以生产者消费者为模型而存在的一个消息队列.

二、作用

1、解耦
这是一个天然的解耦,实现了应用程序不再通过接口,你只需要调用消息队列的接口把结果存放在消息队列即可。
2、异步
一个同步的程序执行,通过消息队列,即可实现异步操作,而不必等待结果返回。在应对一些大并发中,起着很重要的作用.

三、工作模式
a、最简单模式

如下图


image.png

这里就只有一个队列而已,生产者生产消费,放入到队列中,消费者进行消息消费。

b、工作队列模式
如下图所示 image.png

这个能实现多个消费者之间进行消费的公平分发,消息者们可以通过自身的负载进行设置分发频率,比如。a消费者因为一些机器配置等的问题,导致消息没有被立即消费掉,堆积了很多消息,消费者就可以通过设置告诉rabbitmq控制分发频率,别一直发了。这其实就是类似能者多劳的意思。

c、交换机模式

如下图所示


image.png

上面的几种类型,都是消息只能发送到指定的queue中,但是想要类似广播的效果,发给所有消费者,或者像组播的形式,发送给某些特定的消费者。这时候就需要用到exchange了。

1、fanout 所有bind到此exchange的queue都可以接收消息
2、direct: 通过routingKey和exchange决定的那个唯一的queue可以接收消息
3、topic:所有符合routingKey(此时可以是一个表达式)的routingKey所bind的queue可以接收消息
表达式符号说明:

#代表一个或多个字符,*代表任何字符
例:#.a会匹配a.a,aa.a,aaa.a等
*.a会匹配a.a,b.a,c.a等
注:使用RoutingKey为#,Exchange Type为topic的时候相当于使用fanout 

4、headers: 通过headers 来决定把消息发给哪些queue

d、routing转发模式

如下图所示


image.png

这其实就是direct组播模式,设置好exchange交换机的类型,转发的时候,会检查队列中的routingkey值,如果和消息的关键字相同则转发,否则丢弃

e、主题转发模式
image.png

这是topic模式,这个其实和上面一个转发有点类似,但是这个支持模糊匹配,

相关文章

  • RabbitMQ笔记

    1、消息队列 在介绍RabbitMQ之前先介绍一下消息队列,即MQ,(Message Queue) 消息队列是典型...

  • 消息队列对比

    引用: 常用消息队列对比消息队列及常见消息队列介绍 常用消息队列 1. RabbitMQ 用erlang语言开发的...

  • rabbitmq消息队列介绍

    一、定义 rabbitmq是建立在AMQP上的企业消息系统。以生产者消费者为模型而存在的一个消息队列. 二、作用 ...

  • 消息队列探秘-RabbitMQ消息队列介绍

    1. 历史 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的...

  • 80 rabbitmq

    Rabbitmq 基本介绍 RabbitMQ是基本实现了赶集消息队列协议(AMQP)的开源消息代理软件(也称作面向...

  • RabbitMQ 研究

    1 、介绍 1.1 RabbitMQ MQ全称为Message Queue,即消息队列, RabbitMQ是由er...

  • Redis作为消息队列与RabbitMQ的比较

    Redis作为消息队列与RabbitMQ的比较 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议...

  • 消息队列——了解一下

    本文将从以下几点展开 为什么使用消息队列? 消息队列的缺点 消息队列如何选型 RabbitMQ RabbitMQ ...

  • 技术转载——初窥RabbitMQ消息中间及SpringBoot整

    一:RabbitMQ简介 RabbitMQ介绍 RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解...

  • 异步消息队列

    1. 消息队列 rabbitmq - 提供消息队列服务 rabbitmq 常用指令 docker run -d -...

网友评论

      本文标题:rabbitmq消息队列介绍

      本文链接:https://www.haomeiwen.com/subject/xyfzfctx.html