SpringCloud学习路线——服务异步通讯RabbitMQ
在Spring Cloud中,使用RabbitMQ进行服务间的异步通讯通常涉及以下步骤:
- 在Spring Boot应用中添加RabbitMQ依赖。
- 配置RabbitMQ连接。
- 创建交换器(Exchange)和队列(Queue)。
- 使用
@RabbitListener
注解创建消息监听器。 - 使用
RabbitTemplate
发送消息。
以下是一个简单的例子:
1. 添加依赖(pom.xml)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2. 配置RabbitMQ(application.properties或application.yml)
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
3. 创建交换器和队列
@Configuration
public class RabbitConfig {
@Bean
Queue queue() {
return new Queue("myQueue", true);
}
@Bean
DirectExchange exchange() {
return new DirectExchange("myExchange");
}
@Bean
Binding binding(Queue queue, DirectExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with("routingKey");
}
}
4. 创建消息监听器
@Component
public class Receiver {
@RabbitListener(queues = "myQueue")
public void receiveMessage(String message) {
System.out.println("Received <" + message + ">");
}
}
5. 发送消息
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
rabbitTemplate.convertAndSend("myExchange", "routingKey", message);
}
在这个例子中,我们定义了一个名为myQueue
的队列,一个名为myExchange
的直连交换器,并将队列绑定到这个交换器上。然后,我们创建了一个消息监听器来监听这个队列,并接收消息。最后,我们使用RabbitTemplate
来发送消息到这个交换器。
评论已关闭