rabbitmq

RabbitMq09——confirm串行和并行模式 之前我们确定一个消息是否发送成功是从消费者是否接收到来判断的,但是在实际应用中,消费者和生产者往往是分开部署的,我们也不可能每发送一条消息就去消费者那里确认一下,所有我们需要一个机制来确认消息发送后是否成功到达了消息队列,下面来介绍几种在生产者端来确认消息发送状态的方法。(本篇及上一篇事务模式) confirm串行模式 生产者 package com.mmr.rabbitmq.confir... 阅读详情

1.RabbitMQ是什么

实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用erlang语言编写的,企业级消息代理软件。实现了服务之间的解耦

2.为什么要使用RabbitMQ 解耦、异步、削峰

在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;
拥有持久化的机制,进程消息,队列中的信息也可以保存下来。
实现消费者和生产者之间的解耦。
对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利于数据库的操作。
可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。

3.结构

客户端:一切连接rabbitmq的客户端可以分为两个角色 生产者:消息生产者发送者 消费者:消息接受者处理者
核心组件:
a.连接相关:connection:长连接 channel:信道短连接
b.交换机组件:基于erlang语言开发的,rabbitmq核心组件,处理客户端中生产短所有消息的高并发,客户端并发能力不稳定,生产端的消息并不是直接发送给队列,队列能力接受处理消息的前提,就是交换机的逻辑。
c.队列queue:真正处理消息的rabbitmq的组件,消息的顺序排队,确定机制等,都有queue维护

4.交换机类型direct(routing路由模式),fanout(发布订阅),主题模式(topic)

5.rabbitmq五种场景

a.简单模式(一对一):在一次消息生产消费过程中,一个生产者对应一个消费者,形成一发一接的结构;这里使用的是路由交换机。应用场景:消息软件,短信、微信
b.工作模式(一发多接,资源争抢):在生产消息发送到对列,之后由多个消费端争抢,谁的空闲率大,抢到的几率就大,可以使用任意的交换机。场景:强红包
c.路由模式:路由模式不关心后端消费者数量,如果一个消费者监听一个对列,简单模式。如果多个消费者监听一个对列,争抢模式。场景:error错误,打印在开发人员屏幕
d.发布订阅:一条消息不携带具体路由key,经过fanout模式的交换机后发送给后端所有对列。场景:邮件群发
e.主题模式:是一种特殊的路由,以现在后端对列绑定topic类型交换机时,可以不适用具体路由key,可以使用匹配符号。

6.如何避免消息重复投递或者重复消费?

在消息生产时,MQ内部针对每条生产者发送的消息生成一个inner-msg-id,作为去重的依据(消息投递失败并重传),避免重复的消息进入队列;
在消息消费时,要求消息体中必须要有一个bizId(对于同一业务全局唯一,如支付ID、订单ID、帖子ID等)作为去重的依据,避免同一条消息被重复消费

7.消息基于什么传输?

基于信道的方式传输数据,信道是建立在真实的tcp连接内的虚拟连接,且每条tcp连接上的信道数量都没有限制

8.如何确保消息不会被丢失?

消息持久化,前提是队列必须持久化,将消息写入磁盘是上的一个持久化日志文件,当发布一条持久性消息到持久性服务器上时,rabbitmq会在消息提交到日志文件后才会发送响应。一旦消费者从持久队列中消费了一条持久化消息,tabbitmq会在持久化日志中把这个消息标记一下,等待垃圾回收,如果消息没有被消费,rabbitmq宕机,重启,他会自动重建交换机和队列,并且重新发布消息到合适的队列

【Docker】之安装 RabbitMQ 1、下载 RabbitMQ 镜像 下载最新版本的镜像: docker pull rabbitmq 更多版本的镜像可以访问 Docker 官网:https://hub.docker.com/_/rabbitmq?tab=tags 2、创建并运行 RabbitMQ 容器 启动命令: docker run -d -p 15672:15672 -p 5672:5672 \ -e RABBITMQ_DEFAULT_VHOST=my_vhost \ -e RABBITMQ_DEFAULT_USER=adm 阅读详情

相关推荐

RabbitMQ 集群

RabbitMQ 作为消息中间件,可以与多个生产者和消费者进行绑定,但是如何只有一台 RabbitMQ 服务的话,那么这个 RabbitMQ 就需要处理很多的请求,如果该 RabbitMQ 节点挂掉了之后,那么所有与之相关的操作都无法进行了。我们可以升级 RabbitMQ 的硬件设施,提升 RabbitMQ 的处理能力,但是硬件的升级成本是很高的,比较好的解决方法就是搭建 RabbitMQ 集群。

m0_54854484的博客 1310

RabbitMQ(八):RabbitMQ消息确认机制之confirm串行

一、Confirm模式 生产者将信道设置成confirm模式,一旦信道进入confirm模式,所有在该信道上面发布的消息都会被指派一个唯一的ID(从1开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者(包含消息的唯一ID),这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会将消息写入磁盘之后发出,broker回传给生产者的确认消...

Saytime 2275

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1494

Rabbit干货:这也许是最全面透彻的一篇RabbitMQ指南!

干货:这也许是最全面透彻的一篇RabbitMQ指南! https://www.cnblogs.com/zhangxiaoliu/p/7524846.html 转载于:https://my...

235

避开这5个坑!STC8H DMA串口通信的实战避坑指南(115200波特率实测)

本文深入解析了STC8H单片机利用DMA实现稳定全双工串口通信的实战要点。针对115200高波特率场景,详细拆解了DMA-UART架构、关键寄存器配置、时钟精度计算、缓冲区管理及中断协同等核心环节,并提供了具体的避坑指南和调试方法,帮助开发者构建高效可靠的通信链路。

melon的博客 675

海康工业相机SDK+OpenCV实战:图像采集与Mat格式转换优化指南

本文深入探讨了如何高效利用海康工业相机SDK与OpenCV进行图像采集与处理。重点解析了从相机RawData到OpenCV Mat格式转换的核心优化技巧,包括像素格式匹配、内存零拷贝管理以及彩色图像BGR/RGB转换,旨在解决工业应用中常见的性能瓶颈与内存问题,构建稳定高效的图像处理流程。

weixin_29192211的博客 108

win10 安装RabbitMQ时 执行:rabbitmq-plugins enable rabbitmq_management命令报 Plugin configuration unchanged

安装RabbitMQ时 执行:rabbitmq-plugins enable rabbitmq_management命令报 Plugin configuration unchanged

xin292930540的专栏 6608

从手机到自动驾驶:MIPI-CSI2协议演进史与车规级改造要点

本文追溯了MIPI-CSI2协议从智能手机摄像头到自动驾驶核心传感器的演进历程。重点剖析了该协议在车规级改造中面临的严苛挑战,包括物理层稳定性、EMC防护、功能安全与数据可靠性等关键要点,并探讨了其在多传感器融合与高带宽实时传输中的工程实践。

weixin_28318011的博客 308

【RabbitMQ】Windows下RabbitMQ的安装和部署

RabbitMQ在windows下安装部署

Hanson的博客 4085

Langchain分割方式

【代码】Langchain分割方式。

2896

基于YOLOv10的微小目标检测,多头检测器提升小目标检测精度

引入多头检测器助力YOLOv10,暴力提升小目标检测性能

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 2569

RabbitMQ学习笔记:节点名称详解、rabbitmq-server、及rabbitmq-env.conf

rabbitmq-server rabbitmq-server 启动一个RabbitMQ节点 1.rabbitmq-server在前端启动一个RabbitMQ节点,示例如下: [root@rabbit3 rabbitmq]# rabbitmq-server ## ## RabbitMQ 3.8.1 ## ## ########## Copyright (c) 20...

OceanSky的专栏 1万+

[QMT量化交易小白入门]-三十七、QMT中如何使用类似于通达信中的VBA函数(量化python代码解析)

这段代码主要围绕着在QMT环境中实现类似通达信VBA函数的功能展开,核心功能是基于RSI指标来判断股票的买卖时机,并根据持仓情况进行相应的交易操作。class G():passg = G()这里定义了一个空类G,并创建了该类的实例g。这个实例g将作为全局变量来存储一些在整个程序运行过程中需要共享的数据,例如除复权类型、股票代码、目标数量等。1、使用VBA开发策略时,参数固化的问题会带来一些限制,比如无法修改MA函数的周期参数,只能使用固定周期。

木头大左的博客 1694

【RabbitMQ实战】06 RabbitMQ配置

一般情况下,可以使用默认的内建配置来有效地运行RabbitMQ,并且大多数情况下也并不需要修改任何 RabbitMQ的配置。当然,为了更加有效地操控 RabbitMQ,也可以利用调节系统范围内的参数来达到定制化的需求。RabbitMQ提供了三种方式来定制化服务:(1)环境变量(Enviroment Variables )。RabbitMQ服务端参数可以通过环境变量进行配置,例如,节点名称、RabbitMQ配置文件的地址、节点内部通信端口等。(2)配置文件(Configuration File )

程序员笔记 2880

《QGIS空间数据处理与高级制图》【目录】

《QGIS空间数据处理与高级制图》是一本面向GIS技术人员和学生的进阶手册,重点提升数据处理效率和专业制图标准化水平。全书涵盖空间数据预处理、矢量编辑、栅格处理、坐标系统应用和符号化设计等核心内容。书中详细介绍了批量数据转换、拓扑检查、遥感影像处理、自定义坐标系创建等实用技能,并提供了模型构建器和PyQGIS脚本实现自动化操作。通过大量实战案例和问题排查指南,帮助读者从基础使用进阶到专业应用,适合测绘、规划、环保等行业的GIS从业者参考使用。

LuckyHanMo的博客 372

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

rabbitmq系列1——安装并使用rabbitmq

🔥本篇概览:详细讲解了安装并使用rabbitmq,并讲解了数据隔离而生的的virtualhost。🌈⭕🔥

做一个善良的人,做好自己的事,如果愿意,再发一份光。 2113

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

什么是RabbitMQ

同步通讯:就像打电话,需要实时响应。异步通信:就像发微信,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不能跟多个人同时通话。发微信可以同时与多个人收发信息,但是往往响应会有延迟。学SpringCloud的时候,我们的Feign 其实就是同步通讯的,他其实有以下这几个缺点耦合度高:(每次有新的需求,都需要更改代码)性能下降:(消费者需要等待提供者响应,如果调用链过长,那么响应的时间等于每次调用的时间之和)资源浪费。

越努力越幸运的博客 2916

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RabbitMQ——Docker搭建RabbitMQ集群

文章目录RabbitMQ——Docker搭建RabbitMQ集群1、普通集群的搭建1.1、普通集群架构介绍1.2、环境准备1.3、集群搭建2、镜像集群的搭建2.1、配置镜像集群的策略 RabbitMQ——Docker搭建RabbitMQ集群 集群模式介绍 RabbitMQ集群模式有两种:普通模式和镜像模式 普通模式:默认模式,多个节点组成的普通集群,消息随机发送到其中一个节点的队列上,其他节点仅保留元数据,各个节点仅有相同的元数据,即队列结构、交换器结构、交换器与队列绑定关系、vhost。消费者消费消

万里顾一程的博客 5838

RabbitMQ

二、RabbitMQ用户管理 2.1 逻辑结构 用户 虚拟主机 队列 2.2 用户管理 2.2.1 命令行用户管理 在linux中使用命令行创建用户 ## 进入到rabbit_mq的sbin目录 cd /usr/local/rabbitmq_server-3.7.0/sbin ## 新增用户 ./rabbitmqctl add_user ytao admin123 设置用户级别 ## 用户级别: ## 1.administrator 可以登录控制台、查看所有信息、可以对RabbitMQ进行管

qq_43587076的博客 3687

laravel + rabbitmq

一、安装laravel 两种方式 1. composer global require laravel/installer laravel new wendao 2. composer create-project --prefer-dist laravel/laravel wendao 二、安装rabbitmq 1. docker pull rabbitmq:management //拉取rabbitmq 镜像 //启动容器 2.docker run -d --nam

rockywish的博客 6831

RabbitMQ 菜鸟安装、RabbitMQ初接触 AMQP 安装、配置指南

RabbitMQ安装: RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境. 安装Erlang 进入到Erlang官网:http://www.erlang.org 进行下载 安装有两种方式: 1.1.源码安装方式: mkdir erlang cd erlang wget http://www.erlang.org/download/otp_src_R15B.t

hepeng_8的专栏 2901

RabbitMQ的基本使用

RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,RabbitMQ是使用Erlang语言来编写的,并且RabbitMQ是基于AMQP协议的。 一、消息队列 1、MQ:Message Queue释义 服务之间最常见的通信方式是直接调用彼此来通信,消息从一端发出后立即就可以达到另一端,称为即时消息通讯(同步通信) 消息从某一端发出后,首先进入一个容器进行临时存储,当达到某种条件后,再由这个容器发送给另一端,称为延迟消息通讯(异步通信) 2、消息队列特点.

qq_54936371的博客 3108

RabbitMQ 入门

MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。比较常见的MQ实现:ActiveMQRabbitMQRocketMQKafka追求可用性(当需要处理数据时,资源处于可用状态的程度):Kafka、 RocketMQ 、RabbitMQ追求可靠性:RabbitMQ、RocketMQ追求吞吐能力(十万级别的):RocketMQ、Kafka追求消息低延迟:RabbitMQ、Kafka。

Java小白的博客 致力分享每一天学到的知识 1970

RabbitMQ 教程 | 第6章 RabbitMQ 配置

这篇 RabbitMQ 教程为学习者提供了全面的内容,帮助学习者充分掌握 RabbitMQ 的应用。整篇教程丰富内容详实,适合初学者和有经验的开发者参考学习。

编程洪同学 4075

linux下搭建RabbitMQ操作

引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。 消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ简介 A

wzq6578702的专栏 9954

RabbitMQ基础篇之RabbitMQ的安装部署

虚拟主机,起到数据隔离的作用,可以在控制台中查看和创建新的 Virtual Host。每个项目可以在 RabbitMQ 中创建自己的 Virtual Host(虚拟主机),内部可以创建独立的交换机和队列。类似于数据库中的不同数据库实例,可以确保各个项目间的资源不冲突。publisher:消息发送者consumer:消息的消费者queue:队列,存储消息exchange:交换机,负责路有消息消息流转过程生产者将消息发送到交换机。交换机根据预定规则将消息路由到队列。消费者从队列中消费消息。

2301_80093566的博客 1250
上一篇: mycat
下一篇: linux切换用户非常慢
baishancha
博客等级 码龄9年 4粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值