Springboot整合Rabbitmq之Confirm和Return机制

以下是Spring Boot整合RabbitMQ之Confirm和Return机制的完整攻略,包含两个示例说明。

示例1:Confirm机制

步骤1:添加依赖

在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

步骤2:配置文件

在application.properties文件中添加以下配置:

spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

步骤3:发送消息

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.support.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner, RabbitTemplate.ConfirmCallback {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public static void main(String[] args) {
        SpringApplication.run(Producer.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        rabbitTemplate.setConfirmCallback(this);
        String message = "Hello World!";
        CorrelationData correlationData = new CorrelationData("1");
        rabbitTemplate.convertAndSend("my_exchange", "my_routing_key", message, correlationData);
        System.out.println("Message sent: " + message);
    }

    @Override
    public void confirm(CorrelationData correlationData, boolean ack, String cause) {
        if (ack) {
            System.out.println("Message confirmed: " + correlationData.getId());
        } else {
            System.out.println("Message failed: " + cause);
        }
    }
}

步骤4:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Hello World!
Message confirmed: 1

步骤5:确认消息

在发送消息后,您可以在RabbitMQ管理界面中确认消息是否已经被消费者消费。

示例2:Return机制

步骤1:添加依赖

同示例1。

步骤2:配置文件

同示例1。

步骤3:发送消息

import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.support.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Producer implements CommandLineRunner, RabbitTemplate.ReturnCallback {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public static void main(String[] args) {
        SpringApplication.run(Producer.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        rabbitTemplate.setReturnCallback(this);
        String message = "Hello World!";
        CorrelationData correlationData = new CorrelationData("1");
        rabbitTemplate.convertAndSend("my_exchange", "my_routing_key", message, correlationData);
        System.out.println("Message sent: " + message);
    }

    @Override
    public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
        System.out.println("Message returned: " + message.getBody());
    }
}

步骤4:运行程序

运行发送消息的程序后,您将看到以下输出:

Message sent: Hello World!
Message returned: Hello World!

步骤5:处理返回的消息

在发送消息后,如果消息无法路由到任何队列,则会返回到生产者。在这种情况下,您可以在返回回调方法中处理返回的消息。

以上就是Spring Boot整合RabbitMQ之Confirm和Return机制的完整攻略,包含两个示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot整合Rabbitmq之Confirm和Return机制 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • springboot+rabbitmq实现智能家居实例详解

    Spring Boot + RabbitMQ 实现智能家居实例详解 在本文中,我们将详细讲解如何使用Spring Boot和RabbitMQ实现智能家居实例。我们将提供两个示例说明,分别是发送和接收智能家居数据。 RabbitMQ基本概念 在使用RabbitMQ之前,需要了解一些基本概念: 生产者(Producer):发送消息的应用程序。 消费者(Consu…

    RabbitMQ 2023年5月15日
    00
  • redis实现简单队列

    以下是“redis实现简单队列”的完整攻略,包含两个示例。 简介 Redis是一种常见的内存数据库,它可以用于实现消息队列。本攻略将介绍如何使用Redis实现一个简单的队列,并提供两个示例。 Redis实现简单队列 使用Redis实现队列的过程非常简单,只需要使用Redis提供的list数据结构即可。以下是实现队列的代码: import redis clas…

    RabbitMQ 2023年5月15日
    00
  • CentOS 6.5源码安装Erlang教程

    以下是“CentOS 6.5源码安装Erlang教程”的完整攻略,包含两个示例说明。 简介 Erlang是一种函数式编程语言,广泛用于构建高可靠性、高并发性的分布式系统。本攻略将介绍如何在CentOS 6.5上使用源码安装Erlang。 步骤1:安装依赖 在使用源码安装Erlang之前,需要先安装一些依赖。可以使用以下命令在CentOS 6.5中安装依赖: …

    RabbitMQ 2023年5月15日
    00
  • SpringBoot集成RabbitMQ的方法(死信队列)

    SpringBoot集成RabbitMQ的方法(死信队列) RabbitMQ是一个开源的消息队列系统,支持多种消息递协议。在RabbitMQ中,多种消息模型可以用于不同的场。本文将详细讲解SpringBoot集成RabbitMQ的完整攻略,并提供两个示例说明。 环境准备 在开始之前,需要确保已经安装了以下环境: JDK 1.8 或以上版本 Maven 3.0…

    RabbitMQ 2023年5月15日
    00
  • RabbitMQ实现Work Queue工作队列的示例详解

    RabbitMQ实现Work Queue工作队列的示例详解 RabbitMQ是一个开源的消息队列系统,支持多种消息递协议。在使用RabbitMQ时,可以使用Work Queue工作队列来实现任务的异步处理。本文将介绍如何使用RabbitMQ实现Work Queue工作队列,并提供两个示例说明。 Work Queue工作队列 Work Queue工作队列是一种…

    RabbitMQ 2023年5月15日
    00
  • NetCore 3.0文件上传和大文件上传的限制详解

    以下是“NetCore 3.0文件上传和大文件上传的限制详解”的完整攻略,包含两个示例。 简介 在本攻略中,我们将详细讲解NetCore 3.0文件上传和大文件上传的限制。通过攻略的学习,您将了解NetCore 3.0文件上传和大文件上传的基本概念、上传限制以及如何优化文件上传。 示例一:文件上传限制 以下是文件上传限制的示例: 文件大小限制 在NetCor…

    RabbitMQ 2023年5月15日
    00
  • java远程连接调用Rabbitmq的实例代码

    以下是“Java远程连接调用RabbitMQ的实例代码”的完整攻略,包含两个示例说明。 简介 RabbitMQ是一个开源的消息队列系统,它支持多种消息协议,包括AMQP、MQTT、STOMP等。RabbitMQ提供了可靠的消息传递机制,可以在分布式系统中使用。 Java是RabbitMQ的主要客户端之一,它提供了丰富的API,可以轻松地连接和使用Rabbit…

    RabbitMQ 2023年5月15日
    00
  • spring+maven实现发送邮件功能

    以下是Spring+Maven实现发送邮件功能的完整攻略,包含两个示例。 简介 发送邮件是Web应用程序中常见的功能之一,可以实现用户注册、密码重置、通知等功能。本攻略将详细讲解Spring+Maven实现发送邮件功能的代码实例,并提供两个示例。 示例一:使用JavaMailSender发送简单邮件 以下是使用JavaMailSender发送简单邮件的代码示…

    RabbitMQ 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部