一、简介

RabbitMQ是一个消息代理,可以将其视为邮局,它接受和转发消息。

RabbitMQ和邮局之间的主要区别在于它不处理纸张,而是接受、存储、转发二进制blob数据 - 消息。

二、队列

队列是RabbitMQ中的邮箱的名称。

消息流经RabbitMQ和应用程序,但它们只能存储在队列中。

队列仅由主机的存储器&磁盘限制约束,它本质上是一个大的消息缓冲器。

许多生产者可以发送到一个队列的消息,并且许多消费者可以尝试从一个队列接收数据。

三、基本概念

  • ConnectionFactory(连接工厂): 生产Connection的的工厂

  • Connection(连接):是RabbitMQ的socket的长链接,它封装了socket协议相关部分逻辑

  • Channel(频道|信道): 是建立在Connection连接之上的一种轻量级的连接,我们大部分的业务操作是在Channel这个接口中完成的,(如果把Connection比作一条光纤电缆的话,那么Channel信道就比作成光纤电缆中的其中一束光纤。一个Connection上可以创建任意数量的Channel)

    • 声明队列:queueDeclare、
    • 声明交换机:exchangeDeclare、
    • 队列的绑定:queueBind、
    • 消息的发布:basicPublish、
    • 消息的消费:basicConsume等。
  • Producer(生产者):生产消息

  • Consumer(消费者):消费消息Exchange(交换机):生产者会将消息发送到交换机,然后交换机通过路由策略(规则)将消息路由到匹配的队列中去

    • 消费者只需关注队列即可,不需要关注交换机和路由键,
    • 消费者可以通过basicConsume(订阅模式可以从队列中一直持续的自动的接收消息)
    • 或者basicGet(先订阅消息,然后获取单条消息,再然后取消订阅,也就是说basicGet一次只能获取一条消息,如果还想再获取下一条还要再次调用basicGet)来从队列中获取消息
  • Routing Key(路由键):一个String值,用于定义路由规则,Queue(队列):用于存储消息的容器,可以看成一个有序的数组,生产者生产的消息会发送到交换机中,最终交换机将消息存储到某个或某些队列中,(消息的持久化是将消息写入rabbitMQ自带的数据库中)。

    • 在队列绑定的时候需要指定路由键,
    • 在生产者发布消息的时候需要指定路由键,
    • 在消费的时候只需关注队列即可,不需要关注交换机和路由键(不理解)(消费前必须指定指定队列,声明)
    • 在消息确认机制中,自动回复队列应答时需要(待定)
    • 当消息的路由键和队列绑定的路由键匹配时,消息就会发送到该队列(条件)。
  • Binding(绑定): Binding并不是一个概念,而是一种操作,(RabbitMQ中通过绑定,以路由键作为桥梁将Exchange与Queue关联起来,这样RabbitMQ就知道如何正确地将消息路由到指定的队列了)

    • (Exchange—>Routing Key—>Queue),通过queueBind方法将Exchange、Routing Key、Queue绑定起来
  • vhost(虚拟主机): RabbitMQ 通过虚拟主机(virtual host)来分发消息,

    • 拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。
    • vhost是权限控制的基本单位,用户只能访问与之绑定的vhost,默认vhost:”/” ,默认用户”guest” 密码“guest”,来访问默认的vhost。

四、理解

  下图说明了生产者将消息发送到交换机中,然后又路由到指定的队列中

转载于:https://www.cnblogs.com/zhxb/p/9370022.html

RabbitMQ(一):简介和基本概念相关推荐

  1. GIS基础简介:基本概念、互联网坐标系、WebGIS实操

    GIS基础简介:基本概念.互联网坐标系.WebGIS实操 01 | GIS基础知识-GIS概念 1.GIS是什么: 1)随着时代的发展我们几乎每天都能够与GIS接触.比如手机上的百度地图或者高德地图, ...

  2. RocketMQ_01 RocketMQ入门简介及核心概念

    RocketMQ_01 RocketMQ入门简介及核心概念 伟大的事物不是一时冲动做起来的,而是由一系列小事共同造就的 一.RocketMQ简介 RocketMQ是一款分布式.列队模型的消息中间件,由 ...

  3. RabbitMQ成员简介

    文章目录 Exchange 交换机 交换机属性 Direct Exchange Producer Consumer Topic Exchange Producer Consumer Fanout Ex ...

  4. RabbitMq Federation简介

    RabbitMq Federation简介 背景: broker1 broker2 exchanger2 mq2 federation提供了一个能力,让broke1在本地先创建一个exchange2, ...

  5. RabbitMQ Server简介和安装教程

    引言 什么是AMQP? AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间 ...

  6. RabbitMQ (一)基础概念

    1 使用场景 系统解耦 异步 削峰 2 核心概念 vhost:虚拟主机 broker::消息服务进程,包含 exchange 和 queue exchange: 交换器.负责根据路由规则转发消息 qu ...

  7. Dubbo简介与基本概念

    场景 分布式系统的发展演变以及RPC简介: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555049 Dubbo简介 Ap ...

  8. RocketMQ简介及核心概念说明

    1.1.RocketMQ简介 Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给 Apache,成为了Apache的一个顶级项目. 在 ...

  9. BLE MESH组网(一)简介和基本概念

    BLE MESH组网(一) BLE MESH简介 BLE MESH来源 BLE MESH用处 BLE MESH的通讯方式 管理洪水 市场内蓝牙设备支持 安全性 BLE MESH协议栈模型 BLE ME ...

最新文章

  1. html将图片做成标签,HTML(图片标签)
  2. .NET6下周发布真的香,可不少人却只会.NET Framework!
  3. 在高考作弊这事上,古今监考老师操碎了心!
  4. Http和RPC区别
  5. SQL Server报表——小白开发笔记
  6. 在Ubuntu系统中安装字体(以安装华文行楷和方正舒体为例)
  7. WordPress和October
  8. python读取fits第三方库_如何读取FITS
  9. 音频隐写术总结篇(附隐写软件下载链接)
  10. java绘制五子棋棋盘
  11. TVS管与压敏电阻的性能比较
  12. SpringbootHealth访问健康监测时报404问题
  13. Window自带的定时自动执行程序
  14. 两台电脑用网线直连传文件
  15. 无法启用IE代理,EasyConnect不支持自动检测设置,请手动配置代理服务器的IP和端口后重试
  16. Python练习(四)
  17. 实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
  18. 找不到 Web 地址对应的网页:_Web服务器的配置与管理
  19. linux dd报错,安装Mac版变色龙使用dd命令遇到Resource busy 错误
  20. 白社会“钻戒门”风波乍起 小情侣虚惊一场终归和美

热门文章

  1. Makefile使用规则
  2. 实验七 寻址方式在结构化数据访问中的应用
  3. Java说明注释(Doc注释)
  4. 贪心算法之买卖股票的最佳时机 II
  5. 【C/C++多线程编程之七】pthread信号量
  6. DSP学习 -- Visual Studio 操作
  7. 字节(byte)简介
  8. android源码分析之JNI调用与回调
  9. cpu风扇一会转一会停_宝宝不能吹电风扇?空调PK电风扇,到底该Pick谁啊啊啊!...
  10. JZOJ 5697. 【gdoi2018 day1】农场(farm)