下面我为您提供 “SpringBoot之RabbitMQ的使用方法”的完整攻略。
前置条件
在开始学习SpringBoot之RabbitMQ的使用方法之前,我们需要先了解以下几个概念:
- RabbitMQ:开源的消息队列系统,它可以作为消息中间件在分布式系统中传递消息,它实现了高可用、高性能以及可扩展性。
- AMQP(高级消息队列协议):消息协议,用于定义异构系统之间的标准消息格式和交互方式,RabbitMQ遵循 AMQP 的规范。
安装RabbitMQ
在学习RabbitMQ之前,我们需要先安装RabbitMQ。
安装完RabbitMQ后,在命令行输入以下命令即可启动RabbitMQ。
rabbitmq-server
引入依赖
在SpringBoot中使用RabbitMQ需要引入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置文件
在SpringBoot中,我们可以使用application.properties或application.yml配置文件来配置RabbitMQ。以下是配置文件的示例。
application.properties
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
application.yml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /
发送消息
在SpringBoot中,我们可以通过注入RabbitTemplate来发送消息。以下是发送消息的示例。
@Service
public class RabbitMQSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message){
rabbitTemplate.convertAndSend("exchange", "routingkey", message);
}
}
接收消息
在SpringBoot中,我们可以通过注解 @RabbitListener 来接收消息。以下是接收消息的示例。
@Service
public class RabbitMQReceiver {
@RabbitListener(queues = "queue")
public void receive(String message){
System.out.println(message);
}
}
示例1:简单队列模式
简单队列模式指消息只发送到一个队列中,一个消费者从该队列中消费数据。以下是简单队列模式的示例。
配置
# application.yml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /
spring.rabbitmq.listener.simple.queue-name=queue
发送消息
@Service
public class RabbitMQSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message){
rabbitTemplate.convertAndSend("queue", message);
}
}
接收消息
@Service
public class RabbitMQReceiver {
@RabbitListener(queues = "queue")
public void receive(String message){
System.out.println(message);
}
}
示例2:订阅模式
订阅模式指消息发送到一个交换机,多个消费者从不同的队列中消费数据。以下是订阅模式的示例。
配置
# application.yml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /
spring.rabbitmq.listener.simple.concurrency=2
spring.rabbitmq.template.exchange=topic_exchange
spring.rabbitmq.template.routing-key=test.topic.#
发送消息
@Service
public class RabbitMQSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message){
rabbitTemplate.convertAndSend("topic_exchange", "test.topic.one", message);
rabbitTemplate.convertAndSend("topic_exchange", "test.topic.two", message);
}
}
接收消息
@Service
public class RabbitMQReceiver {
@RabbitListener(queues = "queue1")
public void receiveFromQueue1(String message){
System.out.println("Queue1: " + message);
}
@RabbitListener(queues = "queue2")
public void receiveFromQueue2(String message){
System.out.println("Queue2: " + message);
}
}
以上就是完整的 “SpringBoot之RabbitMQ的使用方法”的攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot之RabbitMQ的使用方法 - Python技术站