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 ...
随机推荐
- idea注册码
2019 idea 注册码: N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLC ...
- 折线图hellocharts的使用说明
以前用过一次XCL-chart,但是感觉只适合固定图表,不去滑动的那种,因为你一滑动太卡了你懂得(毕竟作者好久没更新优化了),拙言大神我开玩笑的 ,毕竟我加你的群大半年了 - - 第二研究了一下ach ...
- #Java学习之路——基础阶段(第十篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- [Swift]LeetCode101. 对称二叉树 | Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- [SQL]LeetCode177. 第N高的薪水 | Nth Highest Salary
Write a SQL query to get the nth highest salary from the Employee table. +----+--------+ | Id | Sala ...
- [Swift]LeetCode219. 存在重复元素 II | Contains Duplicate II
Given an array of integers and an integer k, find out whether there are two distinct indices i and j ...
- JQ 放大镜
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title> ...
- 2018OKR年中回顾
一.2018OKR规划 目标1.温习专业基础知识 关键结果1.1 阅读<微积分之屠龙宝刀>+<微积分之倚天宝剑>,加深理解高等数学微积分的各种概念与公式(0.2 屠龙宝刀看了三 ...
- Android--MP3播放器MediaPlayer
前言 Android提供了常见的音频.视频的编码.解码机制.借助于多媒体类MediaPlayer的支持,开发人员可以很方便在在应用中播放音频.视频.本篇博客主要讲解在Android平台下如何播放一个音 ...
- [Python Web]常见的 POST 提交数据的方式
本文参考整理于:https://imququ.com/post/four-ways-to-post-data-in-http.html 简介 这里介绍了,用 POST 方法提交数据时,常见的三种方式: ...