返回

Spring Boot 配置多源 RabbitMQ

见解分享

消息中间件(MQ)是一种允许应用程序相互通信的软件。它通常用于在不同的应用程序之间发送消息,或者在应用程序的不同部分之间发送消息。RabbitMQ 是一个流行的 MQ,因为它快速、可靠且易于使用。

Spring Boot 是一个流行的 Java 框架,它可以简化应用程序的开发。它提供了许多开箱即用的功能,包括对 RabbitMQ 的支持。这使得在 Spring Boot 应用程序中配置和使用 RabbitMQ 非常容易。

在本文中,我们将介绍如何配置多源 RabbitMQ。我们将使用 Spring Boot 来创建简单的 Spring Boot 应用程序,该应用程序将消息发送到多个 RabbitMQ 队列。

配置 RabbitMQ

首先,我们需要在 RabbitMQ 中创建两个队列。我们可以使用以下命令来完成此操作:

rabbitmqadmin declare queue --queue=queue1
rabbitmqadmin declare queue --queue=queue2

接下来,我们需要在 Spring Boot 应用程序中配置 RabbitMQ。我们可以通过在 application.yml 文件中添加以下配置来完成此操作:

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

我们还可以在 application.yml 文件中配置两个 RabbitMQ 队列:

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
    queues:
      queue1:
        durable: true
      queue2:
        durable: true

发送消息到 RabbitMQ

现在我们已经配置了 RabbitMQ,我们可以开始发送消息了。我们可以使用 Spring Boot 的 RabbitTemplate 类来完成此操作。

@SpringBootApplication
public class Application {

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

    @Bean
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        rabbitTemplate.setRoutingKey("queue1");
        return rabbitTemplate;
    }

    @PostMapping("/send-message")
    public String sendMessage(@RequestBody String message) {
        rabbitTemplate.convertAndSend(message);
        return "Message sent";
    }
}

现在我们就可以运行 Spring Boot 应用程序了。我们可以使用以下命令来发送消息:

curl -X POST -H "Content-Type: application/json" -d '{"message": "Hello World"}' http://localhost:8080/send-message

消息将被发送到 RabbitMQ 队列 queue1 中。

接收消息

现在我们已经发送了消息,我们可以开始接收消息了。我们可以使用 Spring Boot 的 @RabbitListener 注解来完成此操作。

@SpringBootApplication
public class Application {

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

    @Bean
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        rabbitTemplate.setRoutingKey("queue1");
        return rabbitTemplate;
    }

    @PostMapping("/send-message")
    public String sendMessage(@RequestBody String message) {
        rabbitTemplate.convertAndSend(message);
        return "Message sent";
    }

    @RabbitListener(queues = "queue1")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

现在我们就可以运行 Spring Boot 应用程序了。当有消息发送到队列 queue1 时,receiveMessage() 方法将被调用,并且消息将被打印到控制台。

总结

在本文中,我们介绍了如何配置多源 RabbitMQ。我们还介绍了如何使用 Spring Boot 发送和接收消息。我们希望本文能够帮助您在 Spring Boot 应用程序中使用 RabbitMQ。