![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RabbitMQ
文章平均质量分 75
TizzyGoodhealth
反派角色
展开
-
SpringBoot 整合RabbitMQ ack确认消息
SpringBoot 整合RabbitMQ ack确认消息废话不多说,上代码了,理论可以看之前的文章版本springboot 2.xjdk 11RabbitMQ 3.8.12Erlang 23.2.6依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</原创 2021-08-03 22:52:25 · 298 阅读 · 0 评论 -
RabbitMQ高级特性之延迟队列(延迟交换器插件)
RabbitMQ高级特性之延迟队列RabbitMQ高级特性之延迟队列对每条消息设置过期时间,这样就意味着每条消息的过期时间不相同。如果我们现在设置的消息如下队列所示,5秒和 1秒的两条消息,此时5秒的过期了,于此期间1秒的消息早就过期了,这样会导致5秒的这个消息还没从队列里删除,1秒的就已经过期了,消费者肯定消费不到。对于这种情况,该如何解决?首先生产者在发送消息时候,是首先发送到交换机,然后交换根据不同的key发送到绑定次交换机的不同队列。那能否在交换器那边根据消息多起时间发送到不同的队列呢原创 2021-08-02 23:13:38 · 542 阅读 · 0 评论 -
RabbitMQ高级特性之消息过期机制以及死信队列
RabbitMQ高级特性之消息过期机制前言在下单场景中,如果一个用户在下单后迟迟没有付款,过来一段时间后,我们需要将这个订单标记为取消状态。那如何取实现这个自动取消订单功能呢?定期轮询数据库用户下单成功,将订单信息放入数据库,同时将支付状态放入数据库,用户付款更改数据库状态。定期轮询数据库支付状态,如果超过30分钟就将该订单取消。优点:设计实现简单缺点:需要对数据库进行大量的IO操作,效率低下,数据量以及并发大的时候,会卡死数据库,延迟性比较高。使用JDK自带TimerTimers没原创 2021-08-01 23:22:40 · 892 阅读 · 0 评论 -
RabbitMQ高级特性之消费端限流
前言为什么需要消费端消费?例如平时在淘宝天猫京东秒杀抢购中,看到一件商品,全国14亿人民,假如其中300w人来说跟你一起抢购这个东西,秒杀商品仅仅就那么几秒时间,300个w的请求一起在几秒内提交到服务器,服务器怎么处理,总不能全部一起后台逻辑判断吧?活动一开始会有大量并发写请求到达服务端,那我们如何做才能保证我们的服务不崩溃,还能控制并发,此时就需要mq出马,利用mq的消费端限流操作,对消息进行削峰处理,如何削峰?当300w的消息投递全部投到我们mq中,我们机器内存,磁盘是否支持?当300w的消息原创 2021-07-30 23:18:56 · 1172 阅读 · 1 评论 -
RabbitMQ高级特性之消息确认机制
前言为了有了消息发送方确认ack,以及消息队列,交换机,消息持久化。还需要消费者确认机制呢?生产者发送确认机制和消息的持久化存储机制,然而这依然无法完全保证整个过程的可靠性,因为如果消息被消费过程中业务处理失败了但是消息却已经出列了(被标记为已消费了),我们又没有任何重试,那结果跟消息丢失没什么分别。mq中消息已经被我们消费了,但是我们又没有将失败的消息再放到mq中,不能保证消息以及数据的一致性。解决针对消费者端消费消息失败情况我们可以增加消费重试机制,也可以将失败的消息保存下来,定时器再进原创 2021-07-28 23:03:34 · 145 阅读 · 0 评论 -
RabbitMQ高级特性之消息可靠性
消息可靠性如何确保消息的可靠性?支付场景中,我们在超时后买商品之后,扫码枪将二维码扫描之后,会给我们推送一条消息,说购买成功,但此时银行还未进行扣款,过来一段时间之后,银行会给我们发来短信通知消费多少钱。这种场景中,我们如何保证我们的消息不被丢失?可以从以下几方面来保证消息的可靠性:客户端代码中的异常捕获,包括生产者和消费者AMQP/RabbitMQ的事务机制发送端确认机制消息持久化机制Broker端的高可用集群消费者确认机制消费端限流消息幂等性还可以使用RabbitMq事务原创 2021-07-26 10:25:23 · 318 阅读 · 0 评论 -
RabbitMQ几种队列工作模式详解
RabbitMQ工作模式详解环境版本RabbitMQ 3.8.12Erlang 23.2.6安装mac用户请点击windows用户自行百度当然您有别的选择更好,总之有环境就可!Work QueueWork Queue也叫工作模式,生产者发消息,启动多个消费者实例来消费消息,每个消费者仅消费部分信息,可达到负载均衡的效果。大白话就是一个生产者对应1个或者多个消费者,通过轮训方式发送消息到消费者消费,每个消费者消费一个消息。如如下图废话不多说,上代码。依赖 <depend原创 2021-07-24 18:35:20 · 500 阅读 · 0 评论 -
mac 安装RabbitMQ
安装RabbitMQbrew install rabbitmq默认目录比如3.8.1版本cd /usr/local/Cellar/rabbitmq/3.8.1/sbin启动./rabbitmq-server启动控制台之前需要先开启插件./rabbitmq-plugins enable rabbitmq_management气动插件报错关闭./rabbitmqctl stop登录输入http://localhost:15672/原文链接:https://blog.csdn.net/x转载 2021-07-19 21:54:18 · 88 阅读 · 0 评论 -
RabbitMQ介绍与使用
SpringBoot整合RabbitMQ前言RabbitMQ 官网 文档 提供7种消息队列模式,如下图所示依赖导入 <dependency> <groupId>com.github.luues</groupId> <artifactId>spring-boot-starter-rabbitmq</artifactId> <version>1.2.9原创 2020-07-12 19:46:15 · 414 阅读 · 0 评论 -
RabbitMQ Windows下安装使用
前言RabbitMQ 是什么请百度查看,本人高冷!下载环境RabbitMQ 消息队列是用erlang语言开发,RabbbitMQ是基于AMQP协议的安装erlang环境erlang官网我这边直接下载最新的然后 然后下载RabbitMQ官网地址我这边下载的3.8.5然后懒人安装下一步。想cmd查看版本的可以自己配置path然后打开sbin目录‘’cmd运行命令:rabbitmq-plugins enable rabbitmq_management表示启动成功打开 htt原创 2020-07-11 22:50:15 · 195 阅读 · 0 评论