RabbitMQ如何工作和RabbitMQ核心概念
RabbitMQ是一个开源的消息代理软件。它接受来自生产者的消息并将其传递给消费者。它就像一个中间人,可以用来减少Web应用程序服务器的负载和交付时间。
RabbitMQ如何工作
让我们简要介绍一下RabbitMQ的工作原理。
让我们首先熟悉RabbitMQ的一些重要概念:
生产者:发送消息的应用程序。
消费者:接收消息的应用程序。
队列:存储消息的缓冲区。
消息:通过RabbitMQ从生产者发送给消费者的信息。
连接:连接是应用程序和RabbitMQ代理之间的TCP连接。
通道:通道是连接内的虚拟连接。当您从队列中发布或使用消息时 - 它们都是通过通道完成的。
Exchange:接收来自生产者的消息,并根据交换类型定义的规则将其推送到队列。要接收消息,需要将队列绑定到至少一个交换。
绑定:绑定是队列和交换之间的链接。
路由密钥:路由密钥是交换机查看的密钥,用于决定如何将消息路由到队列。路由密钥就像消息的地址。
生产者将消息发送/发布给代理 - > 消费者从代理接收消息。RabbitMQ是生产者和消费者之间的通信中间件,即使它们在不同的机器上运行。
当生产者向队列发送消息时,它不会直接发送,而是使用交换机发送。下面的设计演示了主要的三个组件如何相互连接。
负责将消息路由到不同队列的交换代理。这样消息就可以从生产者接收到交换机,然后再次转发到队列。这被称为“发布”方法。
消息将从队列中获取并消耗; 这被称为'消费'。
将消息发送到多个队列
通过使用更复杂的应用程序,我们将拥有多个队列。因此消息将在多个队列中发送它。
向多个队列交换发送消息通过绑定和路由密钥连接到队列。绑定是您设置为将队列连接到交换机的“链接”。Routing键是一个消息属性。在决定如何将消息路由到队列时(取决于交换类型),交换机可能会查看此密钥。
消息中心
消息不会直接发布到队列,而是生成器将消息发送到交换机。一个交换负责的消息不同队列的路由。一个交换接受来自生产应用程序的消息并将其路由消息队列与绑定和路由键的帮助。阿结合是队列和交换之间的链接。
RabbitMQ中的消息流
该制片人将消息发布到交换。创建交换时,必须指定它的类型。稍后将详细说明不同类型的交换。
该交换接收消息,现在负责该消息的路由。交换机将不同的消息属性考虑在内,例如路由密钥,具体取决于交换类型。
必须从交换到队列创建绑定。在这种情况下,我们看到来自交换的两个不同队列的两个绑定。Exchange根据邮件属性将邮件路由到队列中。
消息留在队列中,直到消费者处理它们
消费者处理消息。
交换类型
直接:直接交换基于消息路由密钥将消息传递到队列。
扇出:扇出交换将消息路由到绑定到它的所有队列。
主题:主题交换在路由密钥和绑定中指定的路由模式之间进行通配符匹配。
标头:标头交换使用邮件标头属性进行路由。
RabbitMQ核心概念
在深入挖掘RabbitMQ之前,需要先介绍一些重要的概念。
生产者:发送消息的应用程序。
消费者:接收消息的应用程序。
队列:存储消息的缓冲区。
消息:通过RabbitMQ从生产者发送给消费者的信息。
连接:连接是应用程序和RabbitMQ代理之间的TCP连接。
通道:通道是连接内的虚拟连接。当您从队列中发布或使用消息时 - 它们都是通过通道完成的。
Exchange:接收来自生产者的消息,并根据交换类型定义的规则将其推送到队列。要接收消息,需要将队列绑定到至少一个交换。
绑定:绑定是队列和交换之间的链接。
路由密钥:路由密钥是交换机查看的密钥,用于决定如何将消息路由到队列。路由密钥就像消息的地址。
AMQP:AMQP(高级消息队列协议)是RabbitMQ用于消息传递的协议。
用户:可以使用给定的用户名和密码连接到RabbitMQ。可以为每个用户分配权限,例如在实例中读取,写入和配置权限的权限。
RabbitMQ如何工作和RabbitMQ核心概念的更多相关文章
- RabbitMQ核心概念篇
RabbitMQ介绍 一.RabbitMQ使用场景 RabbitMQ他是一个消息中间件,说道消息中间件[最主要的作用:信息的缓冲区]还是的从应用场景来看下: 1.系统集成与分布式系统的设计 各种子系统 ...
- RabbitMq核心概念和术语
简介 越来越多的消息中间件很容易让人产生混淆,在学习一种消息中间件的时候,最好先了解他的几种抽象概念,方便你理解,明白了这些概念,你学习起来的时候也就得心应手,同时也是使用好RabbitMQ的基础. ...
- 消息中间件——RabbitMQ(三)理解RabbitMQ核心概念和AMQP协议!
前言 本章学习,我们可以了解到以下知识点: 互联网大厂为什么选择RabbitMQ? RabbiMQ的高性能之道是如何做到的? 什么是AMQP高级协议? AMQP核心概念是什么? RabbitMQ整体架 ...
- 消息中间件——RabbitMQ(六)理解Exchange交换机核心概念!
前言 来了解RabbitMQ一个重要的概念:Exchange交换机 1. Exchange概念 Exchange:接收消息,并根据路由键转发消息所绑定的队列. 蓝色框:客户端发送消息至交换机,通过路由 ...
- RabbitMQ核心概念和AMQP协议(二)
RabbitMQ是什么? RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议,在完全不同的应用之间共享数据,RabbirMQ是使用Erlang语言来编写的,并且RabbitMQ是基于A ...
- RabbitMQ 核心概念
目录 RabbitMQ 特点 AMQP 协议 RabbitMQ 消息传递机制 Message Exchange 1. 简介 2. 类型 3. 属性 RabbitMQ 特点 RabbitMQ 相较于其他 ...
- java面试一日一题:rabbitMQ的工作模式
问题:请讲下rabbitMQ的工作模式 分析:该问题纯属概念题,需要掌握rabbtiMQ的基础知识,同时该题也是切入MQ的一个引子: 回答要点: 主要从以下几点去考虑, 1.rabbitMQ的基本概念 ...
- (二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
原文:(二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念 没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念. Rabbit ...
- RabbitMQ六种工作模式有哪些?怎样用SpringBoot整合RabbitMQ
目录 一.RabbitMQ入门程序 二.Work queues 工作模式 三.Publish / Subscribe 发布/订阅模式 四.Routing 路由模式 五.Topics 六.Header ...
随机推荐
- 关于using namespace std
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~关于using namespace std ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 批处理修改IP
1. 单次修改IP,批处理文件 newIP.bat @echo =========== Changing to IP : 222.192.41.%1 netsh interface ip set ad ...
- 版本号严格遵守semver语义化标准
地址:http://semver.org/lang/zh-CN/?spm=a219a.7629140.0.0.GUJMXE 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递 ...
- 平衡二叉树(AVL)介绍及其实现
一.平衡二叉树 任何一个数据的查找过程都需要从根结点出发,沿某一个路径朝叶子结点前进.因此查找中数据比较次数与树的形态密切相关. 对于二叉树来说,当树中每个结点左右子树高度大致相同时,树高为logN. ...
- 最小可用id
题目:在非负数组(乱序)中找到最小的可分配的id(从1开始编号),数据量10000000. 题目解读:在一个不重复的乱序的自然数组中找到最小的缺失的那个数,比如1,2,3,6,4,5,8,11.那么最 ...
- [Swift]LeetCode741. 摘樱桃 | Cherry Pickup
In a N x N grid representing a field of cherries, each cell is one of three possible integers. 0 mea ...
- Java面试题:小白不得不懂的斐波那契数列
很长一段时间里,我都非常疑惑:“我写的技术文章不差啊,有内容的同时还很有趣,不至于每篇只有区区几十个人读啊?为什么有些内容简单到只有一行注册码的文章浏览量反而轻松破万?”这样的疑惑如鲠在喉啊!写技术博 ...
- AspNetCore 使用NLog日志,NLog是基于.NET平台开的类库!(又一神器)
NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码. NLog是一个简单灵活的.NET日志记录类库.通过使用NLog,我们可以在任何一种.NET语言中 ...
- IdentityServer Topics(7)- 注销
注销IdentityServer与删除身份cookie一样简单,但是我们必须考虑将用户从客户端应用程序(甚至可能是上游身份提供程序)中注销. 一.删除身份认证Cookie 要删除身证认证cookie, ...
- ASP.NET Core Mvc中空返回值的处理方式
原文地址:https://www.strathweb.com/2018/10/convert-null-valued-results-to-404-in-asp-net-core-mvc/ 作者: F ...