RabbitMQ相关

news/2025/11/12 21:14:17/文章来源:https://www.cnblogs.com/sunnycc/p/19215469

RabbitMQ的AMQP协议是什么


AMQP(Advanced Message Queuing Protocol),高级消息队列协议,提供统一消息服务的开放标准,其核心目标是实现客户端与消息服务之前的高效、安全异步通信,并且在传递的时候不受客户端和开发语言的限制。

 

RabbitMQ消息的工作模式


简单模式:一个生产者一个队列一个消费者,先进先出,一般都是自己实验的时候玩。
队列模式:一个生产者一个队列多个消费者,消费者之间竞争消息,实现了消费者的均衡,一个消息只能被一个消费者消费。
交换机模式:
直连交换机(Direct Exchange):根据指定的路由键完全匹配路由到队列。若路由键不匹配,消息不会被分发。例如,若队列绑定键为 "dog",则仅匹配路由键为 "dog" 的消息。
 ‌

@Component
public class DirectConfig {@Beanpublic DirectExchange directExchangeOne(){
//        name:交换机名称,用于标识该交换机在RabbitMQ中的唯一性。 ‌
//        durable:持久化标志,true表示交换机会被持久化存储(重启后不丢失),false表示临时交换机(重启后消失)。默认值为true。 ‌
//        autoDelete:自动删除标志,true表示当所有绑定的队列解绑后自动删除该交换机,false表示手动删除return new DirectExchange("directExchangeOne",true,false);}@Beanpublic Queue directQueueOne(){//name:交换机名称,用于标识该交换机在RabbitMQ中的唯一性。 ‌//durable:持久化标志,true表示交换机会被持久化存储(重启后不丢失),false表示临时交换机(重启后消失)。默认值为true。return new Queue("directQueueOne", true);}@Beanpublic Queue directQueueTwo(){return new Queue("directQueueTwo");}@Beanpublic Binding directBindingOne(){return BindingBuilder.bind(directQueueOne()).to(directExchangeOne()).with("directKey1");}@Beanpublic Binding directBindingTwo(){return BindingBuilder.bind(directQueueTwo()).to(directExchangeOne()).with("directKey2");}}

 

扇型交换机(Fanout Exchange):将消息广播到所有绑定的队列,不依赖路由键。适用于需要消息被多个队列接收的场景。 ‌

@Component
public class FanoutConfig {@Beanpublic FanoutExchange fanoutExchange1(){return new FanoutExchange("fanoutExchange1");}@Beanpublic Queue fanoutQuery1(){return new Queue("fanout_queue1");}@Beanpublic Queue fanoutQuery2(){return new Queue("fanout_queue2");}@Beanpublic Binding fanoutBinding1(){return BindingBuilder.bind(fanoutQuery1()).to(fanoutExchange1());}@Beanpublic Binding fanoutBinding2(){return BindingBuilder.bind(fanoutQuery2()).to(fanoutExchange1());}
}
View Code

 

主题交换机(Topic Exchange):支持路由键使用通配符 *(匹配单个词)和 #(匹配多个词)。例如,绑定模式为 audit.# 可接收 audit.irs.corporate 类型的消息。 ‌

MQ如何保证消息不丢失
消息丢失分为四个场景
1.生产者到队列过程中
2.交换机到队列的过程
3.队列到消费者的过程
4.交换机未持久化
5.队列未持久化


解决办法
1.生产者到队列过程中防止消息丢失

 

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

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

相关文章

第八天 测试用例编写

一、微信发红包xmind图二、高效编写测试用例的实用技巧 1、用例的来源:公司模板、自己设计、用例管理工具(如禅道) 2、核心字段:用例编号、用例标题、前置条件、用例步骤、预期结果、优先级 3、注意点: (1)用例…

软工团队作业2--需求规格说明书

作业信息这个作业属于哪个课程 首页 - 计科23级34班 - 广东工业大学 - 班级博客 - 博客园这个作业要求在哪里 团队作业2-《需求规格说明书》 - 作业 - 计科23级34班 - 班级博客 - 博客园这个作业的目标 明确团队项目细…

没用的博客园页面的要素介绍

rt1. 关于那几行字点击查看"<b style=color:rgb(119, 248, 255)>又是一年雨季</b>","<b style=color:rgb(119, 248, 255)>青苔悄悄爬满缝隙</b>","<b style=colo…

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

ChatBI 重构工业数据交互:TDengine IDMP 让数据对话更智能

在工业数据处理领域,传统的 BI 工具往往需要用户具备专业的数据分析技能,通过复杂的操作才能获取所需信息,这在快节奏的工业生产中显得效率低下。而 ChatBI 的出现,正以自然语言交互为核心,为工业数据交互带来了革…

结婚证识别科技:利用OCR和深度学习实现婚姻证件信息的自动提取与结构化处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

BOE(京东方)荣获第四届“纪念彼得德鲁克中国管理奖” 创新管理模式获权威认可

11月11日,“2025纪念彼得德鲁克中国管理论坛”在南京顺利召开。BOE(京东方)凭借其融合战略引领、创新驱动、卓越运营与文化支撑为一体的创新管理模式,在长期产业实践中成效卓著,并从近百家参选企业中脱颖而出,荣…

云服务模式进化论:企业云战略的致命误区,从IaaS到FaaS的死亡之旅!

本文深度解析云计算五大服务模式(IaaS、PaaS、SaaS、BaaS、FaaS)的技术本质、商业价值与落地实践,指出没有最好的模式,只有最适合企业业务场景和发展阶段的选择,并分享了不同规模企业的选型策略与转型经验。关注我…

青少年电子设计比赛培训笔记3

初识图形化编程 Mixly软件使用 软件下载软件下载:https://pan.baidu.com/share/init?surl=s0Xl2JiUeMnvZsb452maqQ?pwd=nm35 需要下载并安装驱动程序和编程软件软件使用介绍 软件界面:开发板连接及程序烧录使用Typ…

#题解#洛谷P1314#二分#前缀和#

[传送门](P1314 [NOIP 2011 提高组] 聪明的质监员 - 洛谷) 分析 1.W变大,则要求条件更严格,则sigema(y)不增,具有单调性,考虑二分查找W。O(log w) 2.对于每一个W,可以处理前缀和求特征值。O(n+m) 3.总时间复杂…

Python 实现对遥感影像根据DN值上色

Python 实现对遥感影像根据DN值上色import os import re import glob import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import rasterio from rasterio.plot import plotting_extent fr…

《团队作业2》需求规格说明书

团队作业2-《需求规格说明书》 随笔:星瀚餐递——校园轻量外卖平台作业维度 具体内容所属课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience作业要求 https://edu.cnblogs.com/campus/gdgy/Cl…

【免费】MySQL自动化运维工具,一键生成WORD和EXCEL

【免费】MySQL自动化运维工具,一键生成WORD和EXCEL

实用指南:轻量化 + 绿色部署的日志监控系统log-monitor设计思路(一)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入理解C++智能指针:掌握RAII与内存安全的利器 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

使用rpmbuild将源代码制成rpm包

1 说明 因centos停止支持,需要将一些应用软件迁移到OpenEuler上。原本在centos上只需要直接安装官网提供的预编译rpm包即可,现在没有了现成的安装包,只能从源代码自行编译。如果只是少数机器,逐台编译尚可忍耐,对…

随机链表的复制-leetcode

题目描述 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设…

Linux下的花式「隔空」文件传输魔法

引言 在日常运维、开发协作或者只是在自己的多台设备间同步文件时,你是否厌倦了繁琐的步骤:上传到云盘再下载,或者寻找一个U盘?其实,在 Linux 强大的命令行世界里,我们有多种轻量级、高效的“隔空”传输方案,无…

【LVGL】进度条部件

引言 进度条部件(lv_bar)进度条部件相关 api 函数示例程序 这里建议设置模式为LV_BAR_MODE_RANGE,否则在新版本中,默认模式不可用于设置起始值,容易出问题。 void my_gui(void) {lv_obj_t *bar = lv_bar_create(l…

OpenEuler 22.03 安装zabbix-agent(源代码编译及自制rpm包)

一、说明 1.1 背景 由于centos停止支持的缘故,被迫从centos转换到了OpenEuler-22.03。最初抱着偷懒的想法,尝试直接安装centos7版本的zabbix-agent的rpm包,但是由于openssl版本过高导致无法安装。低版本的openssl本…