草庐IT

oCommunicator_RabbitMQ_Handler

全部标签

记一次rabbitmq消息发送成功,消费丢失问题

记一次rabbitmq消息发送成功,消费丢失问题背景测试数据归档,偶现数据未归档排查idea线上调试,log日志,数据库消息发送记录,代码分块重复执行看哪块出的问题,结果均无问题,最后使用rabbitmqtrace日志,发现问题所在如何查看rabbitmq日志,RabbitmqTrace日志的使用1.什么是TraceTrace是Rabbitmq用于记录每一次发送的消息,方便使用Rabbitmq的开发者调试、排错。可通过插件形式提供可视化界面2.Trace实现概况1、Trace启动后会自动创建系统Exchange:amq.rabbitmq.trace2、每个队列会自动绑定该Exchange,绑定

在Linux系统中实现容器化的消息中间件:RabbitMQ和Kafka

消息中间件在现代分布式系统中起着至关重要的作用。它们可以在不同的应用程序之间实现可靠的异步通信,提供高吞吐量、低延迟和可扩展性。下面将介绍如何在Linux系统中使用容器化技术来部署两种主流的消息中间件:RabbitMQ和Kafka。一、RabbitMQRabbitMQ是一个开源的消息中间件,它基于AMQP(高级消息队列协议)实现。以下是在Linux系统中使用Docker容器化部署RabbitMQ的步骤:1、安装Docker:首先,需要在Linux系统上安装Docker。具体的安装步骤可以参考Docker官方文档。2、拉取RabbitMQ镜像:运行以下命令从DockerHub上拉取RabbitM

【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka

作者简介前言博主之前写过一个完整的MQ系列,包含RabbitMQ、RocketMQ、Kafka,从安装使用到底层机制、原理。专栏地址:https://blog.csdn.net/joker_zjn/category_12142400.html?spm=1001.2014.3001.5482本文是该系列的清单综述,会拉通来聊一下三大MQ的特点和各种适合的场景。目录1.概述1.1.MQ简介1.2.MQ的应用场景1.3.关注MQ的角度2.RabbitMQ3.RocketMQ4.Kafka5.三大MQ的对比1.概述1.1.MQ简介消息中间件,其实准确的叫法应该叫消息队列(messagequeue),简

根据源码,模拟实现 RabbitMQ - 实现消息持久化,统一硬盘操作(3)

目录一、实现消息持久化1.1、消息的存储设定1.1.1、存储方式1.1.2、存储格式约定1.1.3、queue_data.txt文件内容 1.1.4、queue_stat.txt文件内容1.2、实现MessageFileManager类1.2.1、设计目录结构和文件格式1.2.2、实现消息的写入1.2.3、实现消息的删除(随机访问文件)1.2.4、获取队列文件中所有有效消息1.2.5、GC机制1.2.6、GC拓展二、统一硬盘操作一、实现消息持久化1.1、消息的存储设定1.1.1、存储方式传输的Message消息因该如何在硬盘上存储?我们应当考虑一下几点:消息操作并不涉及到复杂的增删改查.消息数

RabbitMQ查询队列使用情况和消费者详情实现

spring-boot-starter-amqpspring-boot-starter-amqp是SpringBoot框架中与AMQP(高级消息队列协议)相关的自动配置启动器。它提供了使用AMQP进行消息传递和异步通信的功能。以下是spring-boot-starter-amqp的主要特性和功能:自动配置:spring-boot-starter-amqp通过自动配置功能简化了与AMQP相关的组件的集成。它根据应用程序的类路径和配置信息,自动创建和配置连接工厂、交换机、队列和绑定等组件,使得开发者无需手动编写繁琐的配置代码。RabbitMQ支持:spring-boot-starter-amqp默

springboot RabbitMQ客户端连接故障恢复

最近做RabbitMQ故障演练发现RabbitMQ服务器停止后,基于springboot的消费端不可以自动的恢复,队列的消费者消失,消息一直积压到队列中,这种情况肯定是不可接收的;通过研究源代码找到了解决方案。一、添加自动恢复配置automaticRecoveryCachingConnectionFactoryfactory=newCachingConnectionFactory(connectionFactory);cachingConnectionFactoryConfigurer.configure(factory);//设置TCP连接超时时间,默认:60000msfactory.get

【RabbitMQ六】——RabbitMQ主题模式(Topic)

RabbitMQ主题模式(通配符模式)前言什么是Topic模式使用Topic模式的要点通配符规则示例代码示例Pom文件引入RabbtiMQ依赖RabbitMQ工具类生产者消费者1消费者2效果总结前言通过本篇博客能够简单使用RabbitMQ的主题模式。本篇博客主要是博主通过官网总结出的RabbitMQ主题模式。其中如果有误欢迎大家及时指正。什么是Topic模式Topic模式与Direct模式相比,他们都可以根据Routingkey把消息路由到对应的队列上,但是Topic模式相较于Direct来说,它可以基于多个标准进行路由。也就是在队列绑定Routingkey的时候使用通配符。这使我们相较于Di

Go操作各大消息队列教程(RabbitMQ、Kafka)

Go操作各大消息队列教程1RabbitMQ1.1概念①基本名词当前市面上mq的产品很多,比如RabbitMQ、Kafka、ActiveMQ、ZeroMQ和阿里巴巴捐献给Apache的RocketMQ。甚至连redis这种NoSQL都支持MQ的功能。Broker:表示消息队列服务实体VirtualHost:虚拟主机。标识一批交换机、消息队列和相关对象。vhost是AMQP概念的基础,必须在链接时指定,RabbitMQ默认的vhost是/。AMQP(AdvancedMessageQueuingProtocol)高级消息队列协议Exchange:交换器,用来接收生产者发送的消息并将这些消息路由给服务

RabbitMQ详解(三):消息模式(fanout、direct、topic、work)

消费模式参考官网:https://www.rabbitmq.com/getstarted.html简单模式Simple,参考RabbitMQ详解(二):消息模式Simple(简单)模式简单模式是最简单的消息模式,它包含一个生产者、一个消费者和一个队列。生产者向队列里发送消息,消费者从队列中获取消息并消费。发布订阅模式fanout同时向多个消费者发送消息的模式(类似广播的形式)路由模式direct根据路由键选择性给多个消费者发送消息的模式主题模式topic是direct模式上的一种叠加,增加了模糊路由RoutingKey的模式工作模式work分发机制…消息模式-fanout(发布订阅)模式类型:

一种多策略下RabbitMQ的延时队列实现

1.为什么会用到延时队列?场景:最近在开发一款系统中遇到这样一个场景,A系统开通套餐需要把套餐信息以邮件的形式发送给相关工作人员,经过人工审核通过后,在B系统里面开通,A系统会调B系统套餐列表接口查询套餐是否开通成功,开通成功则从A系统去完成订单,假如超过设定时间未开通成功,则关闭订单并退费.(这东西俗称"套娃")这时候用RabbitMQ的延时队列就可以完美的解决这个问题2.为什么会提到多策略?场景:假如A系统还有别的功能添加需要经过人工审核之后在B系统中添加成功之后,A系统才会显示添加成功,但是又不想写很多队列啊消费者等代码.就可以用到这种策略模式,换句话说就是类似if…else…能明白了吧