RabbitMQ(一):简介和基本概念
一、简介
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(一):简介和基本概念相关推荐
- GIS基础简介:基本概念、互联网坐标系、WebGIS实操
GIS基础简介:基本概念.互联网坐标系.WebGIS实操 01 | GIS基础知识-GIS概念 1.GIS是什么: 1)随着时代的发展我们几乎每天都能够与GIS接触.比如手机上的百度地图或者高德地图, ...
- RocketMQ_01 RocketMQ入门简介及核心概念
RocketMQ_01 RocketMQ入门简介及核心概念 伟大的事物不是一时冲动做起来的,而是由一系列小事共同造就的 一.RocketMQ简介 RocketMQ是一款分布式.列队模型的消息中间件,由 ...
- RabbitMQ成员简介
文章目录 Exchange 交换机 交换机属性 Direct Exchange Producer Consumer Topic Exchange Producer Consumer Fanout Ex ...
- RabbitMq Federation简介
RabbitMq Federation简介 背景: broker1 broker2 exchanger2 mq2 federation提供了一个能力,让broke1在本地先创建一个exchange2, ...
- RabbitMQ Server简介和安装教程
引言 什么是AMQP? AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间 ...
- RabbitMQ (一)基础概念
1 使用场景 系统解耦 异步 削峰 2 核心概念 vhost:虚拟主机 broker::消息服务进程,包含 exchange 和 queue exchange: 交换器.负责根据路由规则转发消息 qu ...
- Dubbo简介与基本概念
场景 分布式系统的发展演变以及RPC简介: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555049 Dubbo简介 Ap ...
- RocketMQ简介及核心概念说明
1.1.RocketMQ简介 Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给 Apache,成为了Apache的一个顶级项目. 在 ...
- BLE MESH组网(一)简介和基本概念
BLE MESH组网(一) BLE MESH简介 BLE MESH来源 BLE MESH用处 BLE MESH的通讯方式 管理洪水 市场内蓝牙设备支持 安全性 BLE MESH协议栈模型 BLE ME ...
最新文章
- html将图片做成标签,HTML(图片标签)
- .NET6下周发布真的香,可不少人却只会.NET Framework!
- 在高考作弊这事上,古今监考老师操碎了心!
- Http和RPC区别
- SQL Server报表——小白开发笔记
- 在Ubuntu系统中安装字体(以安装华文行楷和方正舒体为例)
- WordPress和October
- python读取fits第三方库_如何读取FITS
- 音频隐写术总结篇(附隐写软件下载链接)
- java绘制五子棋棋盘
- TVS管与压敏电阻的性能比较
- SpringbootHealth访问健康监测时报404问题
- Window自带的定时自动执行程序
- 两台电脑用网线直连传文件
- 无法启用IE代理,EasyConnect不支持自动检测设置,请手动配置代理服务器的IP和端口后重试
- Python练习(四)
- 实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
- 找不到 Web 地址对应的网页:_Web服务器的配置与管理
- linux dd报错,安装Mac版变色龙使用dd命令遇到Resource busy 错误
- 白社会“钻戒门”风波乍起 小情侣虚惊一场终归和美