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