You need to enable JavaScript to run this app.
消息队列 RabbitMQ版

消息队列 RabbitMQ版

复制全文
SDK 参考
Spring Boot SDK
复制全文
Spring Boot SDK

本文介绍在 AMQP 协议下,使用 Spring Boot 连接 RabbitMQ 实例进行消息的生产和消费,并提供对应的示例代码。

准备工作

  • 在 RabbitMQ 实例详情页中获取 AMQP 接入点。如需为实例开启公网访问,请参见设置公网访问
  • 直接使用管理员用户进行生产和消费,可能会有信息泄露风险。您在进行生产和消费前,需要先在 RabbitMQ 集群管理 Web UI 上创建一个非 Admin 角色的新用户,并为新用户绑定 Virtual Host。操作步骤,请参见绑定用户和 Vhost
  • 提前在 RabbitMQ 集群管理 Web UI 上创建 Queue 和 Exchange。

添加依赖

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
    <version>2.3.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.1.RELEASE</version>
</dependency>

准备配置文件

resources路径下,创建配置文件application.yml。请正确填写 RabbitMQ 实例相关配置后,将以下内容填写到配置文件中。

spring:
  rabbitmq:
    host: rbtmq-516***.rabbitmq.volces.com
    port: 5671
    virtual-host: /
    username: doc-user
    password: user-password
    # 如果实例开启公网访问,需要配置如下信息。
    ssl:
      enabled: true
      algorithm: TLSv1.2
      verify-hostname: false
      validate-server-certificate: false

生产消息

package org.example;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProducerController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @RequestMapping("/send")
    public String sendMq(String msg) {
        rabbitTemplate.convertAndSend("doc-exchange", "doc-routekey", msg);
        return "send ok";
    }

}

消费消息

package org.example;

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class ConsumeService {

    @RabbitListener(queues = "doc-queue")
    public void receive(String message) {
        System.out.println("consume msg:" + message);
    }
}

结果验证

启动 Spring Boot 应用后,您可以在浏览器中访问http://localhost:8080/send?msg=xxx,然后发送目标消息。
发送成功后将返回send ok

最近更新时间:2024.08.27 19:47:43
这个页面对您有帮助吗?
有用
有用
无用
无用