当前位置: 首页 > news >正文

AMPQ和rabbitMQ

RabbitMQ 的 Channel、Connection、Queue 和 Exchange 都是按照 AMQP(Advanced Message Queuing Protocol)标准实现的。

AMPQ的网络部分

AMQP没有使用HTTP,使用TCP自己实现了应用层协议。
AMQP实现了自己特有的网络帧格式。

一个Connection代表着一个TCP连接

服务器和客户端使用Connection过程:

  1. 建立TCP。
  2. 协商。
  3. 通信。
  4. 关闭连接

一个Connection内部包含多个Channal

Channal是Connection内部的逻辑信道,多个Channal使用一个Connection的TCP端口。

AMPQ的消息部分

AMQ Model

主要包含了三个主要的组件:

  • exchange(交换器):从Publisher程序中收取消息,并把这些消息根据一些规则路由到消息队列(Message Queue)中
  • message queue(消息队列):存储消息。直到消息被安全的投递给了消费者。
  • binding :定义了 message queue 和 exchange 之间的关系,提供了消息路由的规则。

在这里插入图片描述

AMQP在这个过程中,生产者只能把所有消息发到一个单点(交换器),而不能直接把消息发到某个消息队列(message-queue)中。
绑定是交换器和消息队列之间的关系,告诉交换器如何路有消息。

AMPQ协议的交换器类型

Direct Exchange(直接交换器)

绑定在direct exchange上的队列都需要设置其路由键,当消息到达direct exchange后,会根据消息的路由键(消息路由键=队列绑定在Direct exchange上的路由键)转发到队列。
它实现了点对点的消息传递模式。

Fanout Exchange(扇形交换器)

队列绑定在扇形交换器上。扇形交换器会将收到的消息直接广播到与之绑定的所有队列。
它适用于发布/订阅模式,一传多。

Topic Exchange(主题交换器)

每个队列绑定到主题交换器上都会设置其路由匹配规则。主题交换器可以根据消息的路由键和队列的绑定键之间的模式匹配规则进行路由。
一个消息到达会尝试所有绑定队列的路由匹配模式,如果匹配就路由。

  • 表示一个单词,# 表示零个或多个单词。

Headers Exchange(头部交换器)

头部交换器根据消息的头部属性进行匹配,而不是路由键。在绑定时可以指定一个或多个键值对作为匹配规则,只有当消息的头部属性和绑定规则完全匹配时,消息才会被路由到相应的队列。它适用于根据消息的元数据属性进行路由的场景。

相关文章:

AMPQ和rabbitMQ

RabbitMQ 的 Channel、Connection、Queue 和 Exchange 都是按照 AMQP(Advanced Message Queuing Protocol)标准实现的。 AMPQ的网络部分 AMQP没有使用HTTP,使用TCP自己实现了应用层协议。 AMQP实现了自己特有的网络帧格式。 一个Connection…...

在存在代理的主机上,为docker容器配置代理

1、配置Firefox的代理 (只配置域名或者ip,前面不加http://) 2、为容器中的Git配置代理 git config --global http.proxy http://qingteng:8080 3、Git下载时忽略证书校验 env GIT_SSL_NO_VERIFYtrue git clone https://github.com/nginx/nginx.git 4、docker的…...

备考ICA----Istio实验4---使用 Istio 进行金丝雀部署

备考ICA----Istio实验4—使用 Istio 进行金丝雀部署 上一个实验已经通过DestinationRule实现了部分金丝雀部署的功能,这个实验会更完整的模拟展示一个环境由v1慢慢过渡到v2版本的金丝雀发布. 1. 环境清理 kubectl delete gw/helloworld-gateway vs/helloworld dr/helloworld…...

LeetCode-热题100:39.组合总和

题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被…...

演讲嘉宾公布 | 智能家居与会议系统专题论坛将于3月28日举办

一、智能家居与会议系统专题论坛 智能家居通过集成先进的技术和设备,为人们提供了更安全、舒适、高效、便捷且多彩的生活体验。智能会议系统它通过先进的技术手段,提高了会议效率,降低了沟通成本,提升了参会者的会议体验。对于现代…...

Unity发布webgl之后打开PDF文件,不使用js,不和浏览器交互

创建一个按钮,然后点击就会打开 在webgl下要使用这样的路径拼接,不然就会报错。 btnBook.onClick.AddListener(() >{var uri new System.Uri(Path.Combine(Application.streamingAssetsPath "/Books", "文档.pdf"));Debug.Log…...

Python之装饰器-无参装饰器

Python之装饰器-无参装饰器 装饰器介绍 1. 为何要用装饰器 Python 中的装饰器是一种语法糖,可以在运行时,动态的给函数或类添加功能。装饰器本质上是一个函数,使用 函数名就是可实现绑定给函数的第二个功能 。将一些通用的、特定函数的功…...

音视频实战--音视频编码

1、查找所需的编码器–avcodec_find_encoder或avcodec_find_encoder_by_name 音频编码和视频编码流程基本相同,使用音频编码器则可以编码音频数据,使用视频编码器则可以编码视频数据。 /* 指定的编码器 ID 查找对应的编码器。可以通过这个函数来获取特…...

【黄金手指】windows操作系统环境下使用jar命令行解压和打包Springboot项目jar包

一、背景 项目中利用maven将Springboot项目打包成生产环境jar包。名为 prod_2024_1.jar。 需求是 修改配置文件中的某些参数值,并重新发布。 二、解压 jar -xvf .\prod_2024_1.jar释义: 这段命令是用于解压缩名为"prod_2024_1.jar"的Java归…...

React【Day1】

B站视频链接 一、React介绍 React由Meta公司开发,是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式不错的性能 相较于其它前端框架的优势 丰富的生态跨平台支持 React的市场情况 全球最流行,大…...

MNN 执行推理(九)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session 之维度计算(五…...

算法公式汇总

文章目录 三角函数定义式诱导公式平方关系两角和与差的三角函数积化和差公式和差化积公式倍角公式半角公式万能公式其他公式反三角函数恒等式 三角函数定义式 三角函数 定义式 余切: c o t A 1 t a n A \text { 余切:} \ cotA \frac{1}{tanA} 余切&a…...

c语言管理课程信息系统

定制魏:QTWZPW,获取更多源码等 目录 题目要求 数据结构 函数设计 结构设计 管理员功能: 学生功能: 效果展示 总结 主函数代码 题目要求 管理课程信息系统,允许管理员和学生执行不同的操作。管理员可以添加、浏览、查询、删除、修改和排序课程信息。学生可以…...

大模型在天体物理学研究中的辅助作用与案例分析

大模型在天体物理学研究中的辅助作用与案例分析 1. 背景介绍 天体物理学是研究宇宙中各种天体的物理性质和运动规律的科学。随着观测技术的进步,天体物理学家们获得了大量的数据,这些数据往往具有高维度、非线性、非平稳等特点,给传统的数据…...

洛谷_P1873 [COCI 2011/2012 #5] EKO / 砍树_python写法

P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) n, m map(int,input().split())data list(map(int,input().split())) h 0 def check(mid):h 0for i in data:if i>mid:h (i-mid)if h < m:return Trueelse:return Falsel 0 r …...

Android_NDK调试

第一步&#xff1a; 链接log动态库 在Android.mk文件中添加 LOCAL_LDLIBS -llog 注意&#xff1a;一定要在 include $(BUILD_SHARED_LIBRARY) 之上添加&#xff0c;因为当执行到这句话的时候就表示所有的lib动态库已经加载完毕了&#xff0c;所以当你在这句代码之后再添加…...

全量知识系统 概要设计(SmartChat回复)

以下是根据我给出的 系统概要 “提要和纪要”&#xff0c;SmartChat给出的概要设计。我给出的“提要和纪要”可参考链接&#xff1a; https://blog.csdn.net/ChuanfangChen/article/details/136861822 -------------------------------- 概要设计文档 1. 简介 全量知识系统…...

一、SpringBoot基础搭建

本教程主要给初学SpringBoot的开发者&#xff0c;通过idea搭建单体服务提供手把手教学例程&#xff0c;主要目的在于理解环境的搭建&#xff0c;以及maven模块之间的整合与调用 源码&#xff1a;jun/learn-springboot 以商城项目为搭建例子&#xff0c;首先计划建1个父模块&…...

some/ip CAN CANFD

关于SOME/IP的理解 在CAN总线的车载网络中&#xff0c;通信过程是面向信号的 当ECU的信号的值发生了改变&#xff0c;或者发送周期到了&#xff0c;就会发送消息&#xff0c;而不考虑接收者是否需要&#xff0c;这样就会造成总线上出现不必要的信息&#xff0c;占用了带宽 …...

HTTP Header Fields

HTTP&#xff08;超文本传输协议&#xff09;中包含多种类型的头部字段&#xff08;Header Fields&#xff09;&#xff0c;以下是常见的HTTP头部字段及其作用&#xff1a; ### 通用头字段&#xff08;General Header Fields&#xff09; - **Cache-Control**: 控制缓存行为&a…...

Steam Achievement Manager:游戏成就全流程管理工具详解

Steam Achievement Manager&#xff1a;游戏成就全流程管理工具详解 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager &#x1f31f; 为什么选择Steam Achie…...

【快速EI检索 | SPIE出版】2026通信系统与通信网络国际学术会议(CSACN 2026)

2026通信系统与通信网络国际学术会议&#xff08;CSACN 2026&#xff09; 2026 International Conference on Communication Systems and Networks 2026年5月15-17日 | 中国-西双版纳 大会官网&#xff1a;https://www.iccsacn.org/ 截稿时间&#xff1a;见官网&#xff0…...

DataCap实战指南:从多源数据整合到智能可视化的全流程解析

1. DataCap入门&#xff1a;为什么你需要这个数据瑞士军刀 第一次接触DataCap是在三年前的一个企业数据治理项目里。当时客户有十几个不同系统的数据需要整合&#xff0c;从传统的MySQL到实时分析的ClickHouse&#xff0c;还有一堆Excel和CSV文件。团队折腾了两周都没搞定数据…...

C++的std--function与lambda表达式:可调用对象包装器

C的std::function与lambda表达式&#xff1a;可调用对象包装器 在现代C编程中&#xff0c;可调用对象的灵活处理是提升代码复用性和可读性的关键。std::function与lambda表达式的结合&#xff0c;为开发者提供了一种强大的工具&#xff0c;能够统一管理函数指针、成员函数、仿…...

webflux接收application/x-www-form-urlencoded参数

记录开发中遇到的问题 请求方式&#xff1a;需要用如下方式接收&#xff1a; 方式1PostMapping(value "/user/logout", consumes "application/x-www-form-urlencoded")public ResponseResult logoutForAuthSystem(ServerWebExchange exchange) {exchang…...

FlicFlac:开源音频转换工具从原理到实践

FlicFlac&#xff1a;开源音频转换工具从原理到实践 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 在数字音频处理领域&#xff0c;格式转换是连接不同…...

“羽绒服面料哪家好?”这 5 家源头工厂值得加入采购清单

在 2026 年的服装消费大环境中&#xff0c;品牌的供应链抗压能力正面临前所未有的考验。随着气候变化与消费趋势的急速迭代&#xff0c;品牌方对于核心材料的需求&#xff0c;已经从单纯的“低价采购”彻底转变为“确定性交付”。对于采购主理人与供应链总监而言&#xff0c;评…...

BiliTools终极指南:2026年跨平台B站资源下载解决方案

BiliTools终极指南&#xff1a;2026年跨平台B站资源下载解决方案 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱&#xff0c;支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你…...

体系结构论文(九十九):Large Language Models (LLMs) for Electronic Design Automation (EDA)

Large Language Models (LLMs) for Electronic Design Automation (EDA) 25SOCC这是一篇什么类型的文章这不是一篇提出单一新算法、单一新 benchmark 或单一系统的论文&#xff0c;而是一篇关于“LLM 如何进入 EDA 全流程”的综述/特邀 session 论文。它想做的事情很明确&#…...

Carsim与Simulink联合仿真模型——AEB的cpar文件、simulink模型文件及...

Carsim与Simulink联合仿真模型——AEB 提供cpar文件&#xff0c;simulink模型文件&#xff0c;模型搭建过程文档在汽车开发领域&#xff0c;安全系统始终占据着举足轻重的地位。其中&#xff0c;主动安全辅助系统&#xff08;AEB&#xff09;作为现代汽车的安全核心&#xff0c…...