springboot整合rabbitmq 五种模式及死信队列的demo代码

mq比较 可参考 MQ选型对比ActiveMQ,RabbitMQ,RocketMQ,Kafka 消息队列框架选哪个?

springboot 整合 avtivemq 可参考
springboot 整合activemq 的两种模式 queue和topic 模式 demo代码

1、pom文件需要增加amqp依赖

		<!--rabbitmq amqp的起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>

2、配置文件增加rabbitmq配置参数

spring:
	rabbitmq:
	      host: 127.0.0.1
	      port: 5672
	      #virtual-host: /hello
	      #此处需要登录http://localhost:15672 平台进行新建用户,并且注意赋予权限
	      username: test
	      password: 123456
	  main:
	      #允许其他bean的覆盖
	      allow-bean-definition-overriding: true

3、demo 代码,内附详细说明

需要说明的是:
rabbitTemplate.convertAndSend(key,msg);//输出时没有顺序,不需要等待,直接运行
rabbitTemplate.convertSendAndReceive(key,msg);//使用此方法,只有确定消费者接收到消息,才会发送下一条信息,每条消息之间会有间隔时间(约5s)
demo代码链接: springboot整合rabbitmq 五种模式及死信队列的demo代码.

rabbitmq 五种模式:

简单模式(easy):一个生产者对应一个消费者(单对单)
工作模式(work):一个生产者对应一个消费者(单对多 ),但是只有一个消费者可以获取消息
发布/订阅模式(fanout): 队列绑定到交换机,每个队列都能收到消息
路由模式(direct): 队列绑定到交换机,根据key 路由键规则发送,指定一个队列获取消息
主题模式(topic): 队列绑定到交换机,根据路由规则进行发送,满足规则就能接收消息
*注意:上述模式 同个队列的消费者轮询接收消息

死信队列:当一个消息在队列中死亡则进入死信消息队列
应用场景:例如:订单队列接收超过10秒未能处理成功则进入死信队列,进行异常订单的处理

参数设置
Arguments:

参数名值范围表示意义
x-max-priority整数值 1-255表示消息队列的优先级别,3.5.0版本开始支持,推荐1-10内设置,数值越大优先级别越高;
x-message-ttl单位毫秒/ms队列中消息超时时间,单位ms
x-max-length整数值队列中消息最大数量,超过指定长度将会把最早的几条删除掉
x-dead-letter-exchange死信队列交换机名称声明死信队列的交换机,当队列消息长度大于最大长度、或者过期的等,将从队列中删除的消息推送到指定的交换机中去而不是丢弃掉
x-dead-letter-routing-key死信队列key路由键名称声明死信队列的路由键名称,将删除的消息推送到指定交换机的指定路由键的队列中去
x-expires整数值队列在指定的时间没有被访问(consume, basicGet, queueDeclare…)就会被删除,Features=Exp
x-max-length-bytes整数值限定队列最大占用的空间大小, 一般受限于内存、磁盘的大小
x-queue-modestringLazy Queues: x-queue-mode=lazy 懒队列,先将消息保存到磁盘上,不放在内存中,当消费者开始消费的时候才加载到内存中,在磁盘上尽可能多地保留消息以减少RAM使用;如果未设置,则队列将保留内存缓存以尽可能快地传递消息。
x-overflowString设置队列溢出行为。这决定了当达到队列的最大长度时,消息会发生什么。有效值为Drop Head或Reject Publish。
x-queue-master-locatorString设将队列设置为主位置模式,确定在节点集群上声明时队列主位置所依据的规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值