1. 前言
SpringAMQP
是基于 RabbitMQ
封裝的一套模板,并且還利用 SpringBoot
對其實現(xiàn)了自動裝配,使用起來非常方便。
SpringAmqp
的官方地址:https://spring.io/projects/spring-amqp
說明:
1.Spring AMQP 是對 Spring 基于 AMQP 的消息收發(fā)解決方案,它是一個抽象層,不依賴于特定的 AMQP Broker 實現(xiàn)和客戶端的抽象,所以可以很方便地替換。比如我們可以使用 spring-rabbit 來實現(xiàn)。
2.
spring-rabbit
用于與RabbitMQ服務(wù)器交互的工具包3.SpringAMQP提供了三個功能:
- 自動聲明隊列、交換機(jī)及其綁定關(guān)系
- 基于注解的監(jiān)聽器模式,異步接收消息
- 封裝了RabbitTemplate工具,用于發(fā)送和接收消息
2. Basic Queue 簡單隊列模型
步驟如下:
1.在父工程中引入 spring-amqp
的依賴
2.在 publisher
服務(wù)中利用 RabbitTemplate
發(fā)送消息到 test2024.simple.queue
這個隊列
3.在 consumer
服務(wù)中編寫消費邏輯,綁定 test2024.simple.queue
這個隊列
2.1 父工程導(dǎo)入依賴
<!--AMQP依賴,包含RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.2 消息發(fā)送
2.2.1 消息發(fā)送方必要的配置
# RabbitMQ
rabbitmq:
host: **.105.**.**
port: 5672
username: ****
password: ****
virtual-host: /
2.2.2 發(fā)消息
@SpringBootTest
public class TestRabbitMQ {
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void test01() {
// 聲明隊列名稱
String queueName = "test2024.simple.queue";
String message = "";
// 發(fā)送消息
rabbitTemplate.convertAndSend(queueName, message);
}
}
注意在執(zhí)行發(fā)送消息前要確保 隊列 先聲明到. 所以我們可以先在配置類里聲明出隊列:
@Configuration
public class RabbitMQConf {
// 聲明一個 隊列 test2024.simple.queue
@Bean
public Queue testSimpleQueue() {
return new Queue("test2024.simple.queue");
}
}
啟動SpringBoot項目后,讓該隊列先注冊進(jìn)MQ.然后以后執(zhí)行測試代碼都不用再注冊了.
當(dāng) 該 隊列注冊進(jìn)去后,我們執(zhí)行測試發(fā)送消息代碼, 執(zhí)行成功后,看MQ頁面:
如此 就完成了 消息的發(fā)送.
3. 消息接收
3.1 消息接收方必要的配置
spring:
rabbitmq:
host: ip # 主機(jī)名
port: 5672 # 發(fā)送消息和接收消息的端口號
virtual-host: / # 虛擬主機(jī)
username: *** # 用戶名
password: *** # 密碼
3.2 接收消息
@Component
@Component
public class SpringRabbitListener {
// 監(jiān)聽制定隊列,Spring只要接收到該隊列的消息就會接收消息
@RabbitListener(queues = "test2024.simple.queue")
public void rabbitListener(String message){
System.out.println("接收到消息:" + message);;
}
}
啟動消息接受服務(wù). 控制臺打印收到的消息:
至此 . 我們用 RabbitMQ 來發(fā)送消息及接受消息就實現(xiàn)了.
MQ 頁面
看到消息被消費了.文章來源:http://www.zghlxwxcb.cn/news/detail-849670.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-849670.html
到了這里,關(guān)于SpringBoot實現(xiàn)RabbitMQ的簡單隊列(SpringAMQP 實現(xiàn)簡單隊列)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!