rabbitmq基础(1)

1、背景

能实现消息队列的框架软件有很多,kafka、rabbitmq、RocketMq、activeMq、Redis(非专业),各有各的特点和优缺点。但是之前的公司数据需求规模并非很大,所以采用rabbitmq作为消息队列。

2、rabbitMq的基础架构

       官方地址: RabbitMQ Documentation | RabbitMQ

  • rabbitmq是由erlang语言开发的一款高性能的易扩展的消息中间件,基于amqp协议。
  • rabbitmq架构工作流程图

3、概念解读

Broker: 简单来说就是消息队列服务器实体。中文意思:中间件。接受客户端连接,实现AMQP消息队列和 路由功能的进程。一个broker里可以开设多个vhost,用作不同用户的权限分离。

Exchange:消息交换机,它指定消息按照什么规则,路由到哪个队列。

Queue:消息的载体,每个消息会被投到一个或者多个队列。

Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。

​ Routing Key:路由关键字,exchange根据这个关键字进行消息投递。

vhost:虚拟主机,一个broker里面可以有很多个vhost,用作不同的用户的权限隔离。

Producer:消息生产者,即消息发送方。

Consumer:消息消费者,即消息接收方。

Channel:消息通道,在客户端的每个链接里,可建立多个channel。

从【2】示意图可以看出来,消息生成者没有直接将消息发送给消息队列,而是通过建立与Exchange的channel,将消息发送给Exchange根据规则,再将消息转发给指定的队列。消费者通过建立与消息队列相连的channel,从消息队列中获取消息。

这里谈到的Channel可以理解为建立在生产者/消费者和RabbitMQ服务器之间的TCP连接上的虚拟连接,一个TCP连接上可以建立多个Channel。 RabbitMQ服务器的Exchange对象可以理解为生产者发送消息的邮局,消息队列可以理解为消费者的邮箱。Exchange对象根据它定义的规则和消息包含的routing key以及header信息将消息转发到消息队列。

根据转发消息的规则不同,RabbitMQ服务器中使用的Exchange对象有四种,Direct Exchange, Fanout Exchange, Topic Exchange, Header Exchange,如果定义Exchange时没有指定类型和名称, RabbitMQ将会为每个消息队列设定一个Default Exchange,它的Routing Key是消息队列名称。

更多的概念还是需要自行去官方文档查阅,才能知其所以然。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++面试宝典【配文档,全方面学习】

原word文档[链接: https://pan.baidu.com/s/1CKnm7vHDmHSDskAgxgZgKA?pwdr4wv 提取码: r4wv 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v5的分享] 一、C / C基础 1、简述C的内存分区? 一个C、C程序的内存分区主要有5个…

使用html网页播放多个视频的几种方法

前言 因为项目测试需要,我需要可以快速知道自己推流的多路视频流质量,于是我想到可以使用html网页来播放视频,实现效果极其简单,方法有好几种,以下是几种记录: 注意:测试过,VLC需要使…

Ubuntu18.04运行ORB-SLAM3

ORB-SLAM3复现(ubuntu18) 文章目录 ORB-SLAM3复现(ubuntu18)1 坐标系与外参Intrinsic parameters2 内参Intrinsic parameters2.1 相机内参① 针孔模型Pinhole② KannalaBrandt8模型③ Rectified相机 2.2 IMU内参 3 VI标定—外参3.1 Visual calibration3.2 Inertial calibration…

STM32类别概述、下载程序及启动过程分析

STM32类别概述、下载程序及启动过程分析 STM32类别STM32下载程序STM32启动过程分析 STM32类别 STM32 目前总共有 5 大类,18 个系列 结合 STM32F1 的芯片来说,其 CMSIS 应用程序的简单结构框图,不包括实时操作系统和 中间设备等组件&#xf…

find函数-秒了道题

秒了 笑死 还是规规矩矩做吧 string类的find()函数用于在字符串中查找字符或子串,返回第一个匹配的位置。 class Solution { public:int strStr(string haystack, string needle) {return haystack.find(needle);} };

深入理解操作系统Operator System(1)

目录 OS概念 设计OS的目的 OS定位 操作系统对下的结构层次示意图 理解操作系统的"管理"❗❗ "管理"被管理者的数据 怎么获取被管理者的数据 获取被管理者什么"数据" 数据过多&先描述再组织❗ C/C中的体现 解释OS对硬件的"管…

RabbitMQ(控制台模拟收发消息与数据隔离)

1.RabbitMQ架构图 publisher:生产者,也就是发送消息的一方 consumer:消费者,也就是消费消息的一方 queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理 exchange&…

深度解析速卖通商品详情API:Python实战与高级技术探讨

速卖通商品详情API接口实战:Python代码示例 一、准备工作 在开始之前,请确保你已经完成了以下步骤: 在速卖通开放平台注册账号并创建应用,获取API密钥。阅读速卖通商品详情API接口的文档,了解接口的使用方法和参数要…

什么是物联网?物联网如何工作?

物联网到底是什么? 物联网(Internet of Things,IoT)的概念最早于1999年被提出,官方解释为“万物相连的互联网”,是在互联网基础上延伸和扩展,将各种信息传感设备与网络结合起来而形成的一个巨大网络,可以实…

[SpringCloud] OpenFeign核心架构原理 (一)

Feign的本质: 动态代理 七大核心组件 Feign底层是基于JDK动态代理来的, Feign.builder()最终构造的是一个代理对象, Feign在构建对象的时候会解析方法上的注解和参数, 获取Http请求需要用到基本参数以及和这些参数和方法参数的对应关系。然后发送Http请求, 获取响应, 再根据响…

Python Web开发记录 Day6:MySQL(关系型数据库)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 六、MySQL1、MySQL-概述和引入①MySQL是什么&am…

liunx安装jdk、redis、nginx

jdk安装 下载jdk,解压。 sudo tar -zxvf /usr/local/jdk-8u321-linux-x64.tar.gz -C /usr/local/ 在/etc/profile文件中的,我们只需要编辑一下,在文件的最后加上java变量的有关配置(其他内容不要动)。 export JAVA_HOME/usr/l…

docker部署aria2-pro

前言 我平时有一些下载视频和一些资源文件的需求,有时候需要离线下载,也要速度比较快的方式 之前我是用家里的玩客云绝育之后不再写盘当下载机用的,但是限制很多 我发现了aria2 这个下载器非常适合我,而有个大佬又在原来的基础…

10 OpenCV 形态学的应用

文章目录 算子形态学提取直线示例 算子 adaptiveThreshold 二值化算子 adaptiveThreshold(src, dstNone,maxValue, adaptiveMethod, thresholdType, blockSize, C, ) /* *src:灰度化的图片 *dst:输出图像,可选 *maxValue:满足条件…

C#中对象的相等性与同一性的判断方法总结

C#对象的相等性与同一性 1. 概述与准备1.1 概述1.2 准备 2. Equals(Object)2.1 功能:2.2 实例:2.3 扩展:2.4 重写此方法 3. Equals(Object, Object)3.1 功能3.2 实例 4. ReferenceEquals(Object, Object)4.1 功能4.2 使用场景:4.3…

数据结构学习(四)高级数据结构

高级数据结构 1. 概念 之所以称它们为高级的数据结构,是因为它们的实现要比那些常用的数据结构要复杂很多,能够让我们在处理复杂问题的过程中, 多拥有一把利器,同时掌握好它们的性质,以及所适应的场合,在…

《剑指offer》76--删除链表中重复的结点[C++]

目录 题目: 思路: 贴代码: 代码输出 题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,最后返回链表头指针。 如: 链表1->…

PaddleOCR基于PPOCRv4的垂类场景模型微调——手写文字识别

PaddleOCR手写文字识别 一. 项目背景二. 环境配置三. 数据构造四. 模型微调五. 串联推理六. 注意事项七. 参考文献 光学字符识别(Optical Character Recognition, OCR),ORC是指对包含文本资料的图像文件进行分析识别处理,获取文字…

EXTJS实现自定义表格

宽度自适应 width: 100%, 高度自适应 height: 100% 同时设置表格所处页面高度100% html,body,#griddemo{height: 100%;} 自定义显示的文本内容 Ext.onReady(function () {Ext.QuickTips.init()function sexText(val) {if (val 0) {return <span style"color:green…

网络编程的学习

思维导图 多路复用代码练习 select完成TCP并发服务器 #include<myhead.h> #define SER_IP "192.168.125.73" //服务器IP #define SER_PORT 8888 //服务器端口号int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfd -1;s…