![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
消息队列rabbitmq
文章平均质量分 82
weihe_7306
阳光,开朗
展开
-
Spring Boot整合RabbitMQ之路由模式(Direct)
RabbitMQ中的路由模式(Direct模式)应该是在实际工作中运用的比较多的一种模式了,这个模式和发布与订阅模式的区别在于路由模式需要有一个routingKey,在配置上,交换机类型需要注入DirectExchange类型的交换机bean对象。在交换机和队列的绑定过程中,绑定关系需要在绑定一个路由key。由于在实际的工作中不大可能会用自动确认的模式,所以我们在整合路由模式的过程中,依然采用发送消息双确认机制和消费端手动确认的机制来保证消息的准确送达与消息防丢失。原创 2023-08-27 00:43:08 · 724 阅读 · 0 评论 -
Spring Boot整合RabbitMQ之发布与订阅模式
的模式中,常用的模式有:简单模式,发布与订阅模式,工作模式,路由模式,主题模式。原创 2023-08-20 16:10:01 · 860 阅读 · 0 评论 -
springboot整合rabbitmq死信队列
说道死信,可能大部分观众大姥爷会有懵逼的想法,什么是死信?死信队列,俗称DLX,翻译过来的名称为Dead Letter Exchange 死信交换机。当消息限定时间内未被消费,成为 Dead Message后,可以被重新发送到另一个交换机中,发挥其应有的价值!需要测试死信队列,则需要先梳理整体的思路,如可以采取如下方式进行配置:从上面的逻辑图中,可以发现大致的思路:.1. 消息队列分为正常交换机、正常消息队列;以及死信交换机和死信队列。原创 2023-08-27 15:25:55 · 665 阅读 · 0 评论 -
RabbitMQ+springboot用延迟插件实现延迟消息的发送
延迟队列:其实就是死信队列中消息过期的特殊情况延迟队列应用场景:可以用死信队列来实现,不过死信队列要等上一个消息消费成功,才会进行下一个消息的消费,这时候就需要用到延迟插件了,不过要线在docker上装一个插件前置条件是在Docker中部署过RabbitMq。1、打开你的远程工具,首先查看docker中已有的容器,主要是为了查看rabbitmq的容器ID2、将本地下载好的压缩包传到服务器某文件夹下,然后将其复制到Docker中的RabbitMq容器中的plugins文件夹下。原创 2023-08-27 20:22:08 · 630 阅读 · 0 评论 -
rabbitmq+springboot实现幂等性操作
举个例子:一个消息M发送到了消息中间件,消息投递到了消费程序A,A接受到了消息,然后进行消费,但在消费到一半的时候程序重启了,这时候这个消息并没有标记为消费成功,这个消息还会继续投递给这个消费者,直到其消费成功了,消息中间件才会停止投递。我们利用消息id来判断消息是否已经消费过,如果该信息被消费过,那么消息表中已经 会有一条数据,由于消费时会先执行插入操作,此时会因为主键冲突无法重复插入,我们就利用这个原理来进行幂等的控制,消息内容可以用json格式来进行传输的。1.开启手动ack配置。原创 2023-09-03 17:16:04 · 1248 阅读 · 0 评论 -
Rabbitmq消息积压问题如何解决以及如何进行限流
一、增加处理能力优化系统架构、增加服务器资源、采用负载均衡等手段,以提高系统的处理能力和并发处理能力。通过增加服务器数量或者优化代码,确保系统能够及时处理所有的消息。二、异步处理将消息的处理过程设计为异步执行,即接收到消息立即返回响应,然后将消息放入队列中进行后续处理。这样可以避免同步请求的阻塞,提高系统的吞吐量和响应速度。三、消息分片如果消息体较大或者复杂,可以考虑将消息分片处理。将消息拆分为多个小的部分进行处理,减少单个消息的处理时间,从而提高整体处理能力。四、集群扩展。原创 2023-08-27 17:10:10 · 2651 阅读 · 0 评论