SpringCloud-MQ消息队列
Spring Cloud Stream 是一个构建消息驱动微服务的框架。它整合了消息中间件,使得在 Spring Boot 应用中发送和接收消息变得容易。
以下是一个使用 Spring Cloud Stream 从源发送消息的简单例子:
- 添加依赖到你的
pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 配置
application.yml
或application.properties
:
spring:
cloud:
stream:
binders:
defaultRabbit:
type: rabbit
environment:
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
bindings:
output:
destination: test-topic
content-type: application/json
binder: defaultRabbit
- 发送消息的服务类:
@EnableBinding(Source.class)
public class MessageSender {
@Autowired
private MessageChannel output;
public void send(String message) {
this.output.send(MessageBuilder.withPayload(message).build());
}
}
- 使用发送器发送消息:
@RestController
public class TestController {
@Autowired
private MessageSender messageSender;
@GetMapping("/sendMessage")
public String sendMessage(@RequestParam String message) {
messageSender.send(message);
return "Message sent";
}
}
在这个例子中,我们定义了一个名为 output
的消息通道,并将其绑定到名为 test-topic
的消息主题。我们还配置了 Spring Cloud Stream 使用默认的 RabbitMQ 绑定器。MessageSender
类中的 send
方法用于将消息发送到绑定的通道。TestController
中的 sendMessage
方法通过 HTTP GET 请求触发消息发送。
评论已关闭