
Rabbitmq
文章平均质量分 69
WannaRunning
这个作者很懒,什么都没留下…
展开
-
MQ中怎样去实现消息的顺序消费
常见的MQ中间件中,RocketMQ实现了顺序消费的支持,其他的MQ基本都是没有在MQ层面做顺序消费方面的支持的,毕竟要保证顺序就会对性能带来很大的影响。消费的顺序性问题当消息不在同一个队列中或者同一队列有多个消费者消费的情况下才会有消费的顺序性问题,如果只有一个队列,只有一个消费者且每次都获取一条消息进行消费,那么消息一定是按顺序消费的。全局顺序消费所有进入MQ的消息都要保证顺序消费,如果要实现这种顺序性会大幅度降低MQ的性能。局部顺序消费局部顺序消费是在某些场景的消息需要按顺序消费原创 2021-03-20 22:25:45 · 4334 阅读 · 0 评论 -
RabbitMQ的重试机制和手动ACK带来的幂等性问题
目录RabbitMQ中重试和ACK的配置方式RabbitMQ的重试机制手动ACK机制幂等性问题探讨RabbitMQ中重试和ACK的配置方式 rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest listener: simple: prefetch: 1 concurrency: 10 max-.原创 2021-03-16 16:47:16 · 697 阅读 · 0 评论 -
Springboot整合RabbitMQ使用
引入AMQP依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>@EnableRabbit注解启动Rabbit相关配置@Configuration@SpringBootApplication@EnableRabb原创 2021-03-16 15:29:07 · 125 阅读 · 0 评论 -
RabbitMQ3.6版本后实现延时队列
之前写过基于死信模型实现延时消息,因为在3.6版本前RabbitMQ没有延迟消息相关的支持。但是3.6版本后官方提供了延迟队列的插件,简化了延时队列的实现。下载安装delayed_message_exchange插件下载地址:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.8.9/rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez原创 2021-03-16 14:06:01 · 335 阅读 · 0 评论 -
RabbitMQ的消费者并发配置——ListenerContainerFactory
目录消费者并发能力配置concurrency和 max-concurrency参数算法自定义ListenerContainerFactory创建不同并发能力的containerFactory根据需要使用不同的containerFactory消费者并发能力配置在yml配置文件中可以配置一个全局并发能力配置,可以理解为项目中所有消费者共用一个并发池。可以通过设置最大并发数维护全局的可伸缩的并发池,这种方式的好处是避免资源浪费。listener: simple: .原创 2021-03-16 11:45:58 · 2519 阅读 · 0 评论 -
RabbitMQ的confirm、ack、transaction三个概念的理解
目录ACK (consumer acknowledgemenet)confirm (Publisher confirm)事务(transaction)使用MQ中间件时,保证消息准确发送和消费以及幂等性等问题是我们都需要考虑的。解决这些问题需要先来理解三个概念。在RabbitMQ的确认有两种,其中一个consumer acknowledgement简称为ACK,另一个叫publisher confirm这里我们简称为confirm。ACK (consumer acknowledgeme原创 2020-12-24 15:42:16 · 2389 阅读 · 0 评论 -
RabbitMQ确保消息准确发送的实现方案——事务或Confirm机制
前面写了手动ack的方式保证消息准确消费。那么对于生产者来说怎么来保证消息准确的发送呢?在RabbitMQ中确认并且保证消息被送达有两种方式:事务和confirm确认。需要注意的是两者不能同时使用。官方文章中这样说:处于 transactional 模式的 channel 不能再被设置成 confirm 模式,反之亦然。事务事务方式的性能是比较差的,牺牲了性能换取准确性,或许正因为这样才有了第二种confirm机制。...原创 2020-12-24 15:40:41 · 461 阅读 · 0 评论 -
RabbitMQ使用手动ACK签收保证消息成功消费
RabbitMQ默认acknowledge-mode为auto即自动ack模式,只要有消费者接受消息,无论消费是否成功MQ都认为消费成功。网络原因和消费者自身程序原因都有可能导致这条消息没有被正确消费处理,手动Ack的方式就可以较为严格的保证消息终被成功消费。YML配置开启手动Ack模式spring: rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest listener原创 2020-12-24 10:58:48 · 2099 阅读 · 0 评论 -
SpringBoot+RabbitMQ基于死信队列模型实现延迟消息
DLX(Dead Letter Exchange),死信交换器。当队列中的消息被拒绝、或者过期会变成死信,死信可以被重新发布到另一个交换器,这个交换器就是DLX,与DLX绑定的队列称为死信队列。队列中的消息在以下三种情况下会变成死信 (1)消息被拒绝(basic.reject 或者 basic.nack),并且requeue=false; (2)消息的过期时间到期了; (3)队列长度限制超过了。 当队列中的消息成为死信以后,如果队列设置了DLX那么消息会被发送到DLX。通过x-dead-letter-e原创 2020-12-18 18:06:13 · 332 阅读 · 1 评论 -
centos安装rabbitmq
rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/1.解压otp_src_21.3.tar.gztar -zxvf otp_src_21.3.tar.gz2.进入otp_src_21.3目录,ls看到3.con...原创 2019-11-25 18:15:05 · 118 阅读 · 0 评论 -
windows7下RabbitMQ的安装
rabbitmq是由erlang语言编写的,安装Rabbit MQ的前提是安装Erlang。官网下载:https://www.erlang.org/downloads选择64位下载,注意要与mq版本匹配。下载MQ安装包:下载地址:http://www.rabbitmq.com/install-windows.html下载完后先安装erlang,配置环境变量,然...原创 2019-11-28 10:50:03 · 235 阅读 · 0 评论 -
Rabbitmq中的几种消息模型
Rabbitmq官网上有六种模型介绍,其实从很多资料上看到的理解都是说画框框的这三种同属于订阅(pub/sub)模型图上的第一种就不说了,就是一个队列一个消费者一个生产者,基本的模型。Work模型,也叫任务模型:个人感觉跟activemq的p2p模式类似,生产者把消息发送到队列,可以有多个消费者监听这个队列,那么消息会分摊给多个消费者消费,但是每条消息只会被一个消费者消费。...原创 2019-11-27 14:30:47 · 192 阅读 · 0 评论