美文网首页
springBoot使用RabitMq使用发布确认和消费确认

springBoot使用RabitMq使用发布确认和消费确认

作者: 你猜_bug开发 | 来源:发表于2018-05-30 16:51 被阅读0次

    消息发送确认

    发送的消息怎么样才算失败或成功?如何确认?

    当消息无法路由到队列时,确认消息路由失败。消息成功路由时,当需要发送的队列都发送成功后,进行确认消息,对于持久化队列意味着写入磁盘,对于镜像队列意味着所有镜像接收成功

    使用springBoot,需要在application.properties配置文件中配置:

    ConfirmCallback

    消息发送到 Broker 后触发回调,确认消息是否到达 Broker 服务器,通过实现 ConfirmCallback 接口,复写confirm()方法,实现自己的处理逻辑,

    注意:失败的回调,并不会传回,失败的消息,仅仅只是一个表示,告诉你成功与否,可以在send消息的时候,传入CorrelationData参数(),这样回调ConfirmCallback的时候,就可以拿到message()

    如果需要对失败的消息做额外的重发处理,需要做额外的操作,如:使用redis,把发送的消息,存在redis中,返回ack,则删除redis的消息,定时获取redis中的消息,做重发处理

    代码如下:

    ReturnCallback

    通过实现 ReturnCallback 接口,启动消息失败返回(成功无返回):

    在初始化RabbitAdmin或者RabbitTemplate的时候,设置回调:

    发送消息:

    只有设置了Mandatory,才会在失败的时候调用ReturnCallback(方法)

    消费确认

    首先需要在application.properties配置去下,开启手动确认模式:

    具体消费代码如下:

    相关文章

      网友评论

          本文标题:springBoot使用RabitMq使用发布确认和消费确认

          本文链接:https://www.haomeiwen.com/subject/asvajftx.html