SpringBoot下配置好RabbitMQ发现消息的消费处理是单线程处理的,在有些业务逻辑下是需要多线程并发消费消息的。经过一番研究,总结下实现多线程并发执行消费消息的配置:给ConnectionFactory指定自定义的线程池(TaskExecutor): 新增RabbitmqConfig.java import org.springframework.amqp.core.AcknowledgeMode; import org.springframework.amqp.rabbit.config.SimpleR…

2022-07-04 0条评论 3084点热度 0人点赞 admin 阅读全文

SpringBoot下使用RabbitMQ发送消息,最简单或者默认的方式是发送和接受string类型的,如果你遇到要发送复杂的Java实体类,那么简单的办法就是将其序列化成JSON后发送(例如使用Jackson的ObjectMapper工具),接收方再将JSON消息反序列化成Java实体类,但是这样做显然不够优雅,要处理的重复代码很多。我们可以做配置,让程序自动完成转化这样事情。 pom.xml 下增加mq相关依赖以及fastjson的依赖 <dependency> <groupId>org…

2022-06-26 0条评论 1210点热度 0人点赞 admin 阅读全文

我们知道,RabbitMQ是没有延时列队的,要实现延时列队需要用迂回的方式: 使用2个列队 给第一个列队设置一个ttl(Time-To-Live消息存活时间),且让列队不消费,等待这个ttl的时间后,列队消息死亡,进入死信exchange到死信列队 设置死信列队可以再次路由到其他队列中,进行消息,从而实现延时的功能 流程图如下: 这个方式有个问题就是流程有点复杂, 会产生很多列队和交换机(尤其是当业务较多,有较多类型的消息要实现延迟的情况下,会成倍的增加这些列队)容易出错。 RabbitMQ是支持插件的,好在有专门…

2022-06-04 0条评论 1052点热度 0人点赞 admin 阅读全文

本篇记录下SpringBoot中集成RabbitMQ,并发送消息的步骤,简单几步,即可上手。 SpringBoot是兼容mq的,spring-boot-starter里面就有mq的集成,修改pom,增加如下dependency即可。 pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId>…

2022-05-18 0条评论 845点热度 0人点赞 admin 阅读全文

最近要使用RabbitMQ,为了快速安装和测试,我选择了使用Docker,在此记录下,确实很方便。 首先,先决条件是安装docker-ce,详见:https://blog.terrynow.com/2021/12/15/centos-install-latest-docker-ce-simple-steps/ 然后找官方镜像:https://hub.docker.com/_/rabbitmq,我们需要找一个带管理界面的镜像,如图,最新稳定版本带管理功能(management) 我选择的是红色框的那个,拉取镜像: d…

2022-04-30 0条评论 1569点热度 0人点赞 admin 阅读全文