spring boot-整合RabbitMq(RabbitMq基礎)
文章目錄
一、RabbitMq基礎
RabbitMQ是一個由erlang開發的AMQP(Advanved Message Queue Protocol)的開源實現。
-
Exchange
交換器,用來接收生產者傳送的訊息並將這些訊息路由給伺服器中的佇列。
Exchange有4種型別: direct(預設), fanout, topic, 和headers,不同型別的Exchange轉發訊息的策略有所區別。 -
Queue
訊息佇列,用來儲存訊息直到傳送給消費者。它是訊息的容器,也是訊息的終點。一個訊息可投入一個或多個佇列。訊息一直在佇列裡面,等待消費者連線到這個佇列將取走。 -
Binding
繫結,用於訊息佇列和交換器之間的關聯。一個繫結就是基於路由鍵將交換器和訊息佇列連線起來的路由規則,所以可以將交換器理解成一個由繫結構成的路由表。Exchange 和Queue的繫結可以是多對多的關係。
總結: 建立 Exchange 利用路由鍵,將Exchange 和Queue的繫結,消費端 自己從自己指定的佇列拿取資料(消費端需指定佇列獲取訊息)。訊息傳送端一般需要指定exchange和routingKey。
生產者傳送訊息到交換機並指定一個路由key,消費者佇列繫結到交換機時要制定路由key(key匹配就能接受訊息,key不匹配就不能接受訊息)
二、Springboot 整合RabbitMq
1. spring boot 安裝配置rabbitMq
Spring Boot 2.X - Spring Boot整合AMQP之RabbitMQ
參考URL: https://www.pianshen.com/article/4074353758/
1.1 匯入maven依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
1.2 新增配置檔案資訊
在application.properties檔案當中引入RabbitMQ基本的配置資訊
#對於rabbitMQ的支援
spring.rabbitmq.host=127.0.0.1
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
1.3 編寫RabbitConfig
啟用Rabbit註解
@SpringBootApplication
@EnableRabbit // 開啟基於註解的RabbitMQ模式
public class SpringBootAmqpApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAmqpApplication.class, args);
}
}
1.4 新建一個AmqpController,用於傳送訊息
@RestController
public class AmqpController {
private final RabbitTemplate rabbitTemplate;
public AmqpController(RabbitTemplate rabbitTemplate) {
this.rabbitTemplate = rabbitTemplate;
}
private final static String SUCCESS = "success";
/**
* 單點
* @param msg
* @return
*/
@GetMapping("/direct")
public String direct(String msg){
rabbitTemplate.convertAndSend("amq.direct", "xudc", msg);
return SUCCESS;
}
@GetMapping("/fanout")
public String fanout(String msg) {
rabbitTemplate.convertAndSend("amq.fanout", "", msg);
return SUCCESS;
}
@GetMapping("/topic")
public String topic(String msg){
rabbitTemplate.convertAndSend("amq.topic", "xudc.#", msg);
return SUCCESS;
}
}
1.5 編寫訊息監聽者
@Component
public class AmqpListener {
@RabbitListener(queues = "xudc")
public void receive1(String message) {
System.err.println("xudc -- receive1接收到訊息:" + message);
}
@RabbitListener(queues = "xudc.book")
public void receive2(String message) {
System.err.println("xudc.book -- receive2接收到訊息:" + message);
}
@RabbitListener(queues = "andy")
public void receive3(String message) {
System.err.println("andy -- receive3接收到訊息:" + message);
}
}
三、參考
SpringBoot整合rabbitmq(一)
參考URL: https://www.cnblogs.com/sword-successful/p/10295561.html
Spring Boot 整合 AMQP
參考URL: https://blog.csdn.net/kangguang/article/details/104553352
Spring Boot 2.X - Spring Boot整合AMQP之RabbitMQ
參考URL: https://www.pianshen.com/article/4074353758/
相關文章
- RabbitMQ-Spring整合RabbitMQMQSpring
- RabbitMQ入門到進階(Spring整合RabbitMQ&SpringBoot整合RabbitMQ)MQSpring Boot
- 整合RabbitMQ&SpringMQSpring
- Spring Boot整合rabbitmqSpring BootMQ
- Spring Boot 整合 rabbitmqSpring BootMQ
- RabbitMQ(三):RabbitMQ與Spring Boot簡單整合MQSpring Boot
- RabbitMQ -springboot整合rabbitmqMQSpring Boot
- RabbitMQ 3.9( 基礎 )MQ
- spring-boot-route(十三)整合RabbitMQSpringbootMQ
- RabbitMQ基礎入門MQ
- RabbitMQ基礎知識MQ
- Spring Boot(十三)RabbitMQ安裝與整合Spring BootMQ
- SpringBoot 整合 rabbitmqSpring BootMQ
- Springboot整合RabbitMQSpring BootMQ
- rabbitmq(一)-基礎入門MQ
- 每日一學:如何在 Spring Boot 整合 RabbitMQ ?Spring BootMQ
- Java SpringBoot 整合 RabbitMQJavaSpring BootMQ
- RabbitMQ 入門之基礎概念MQ
- java基礎(六):RabbitMQ 入門JavaMQ
- RabbitMQ 佇列使用基礎教程MQ佇列
- Spring Boot 整合 RabbitMQ 訊息事務(消費者)Spring BootMQ
- Spring Boot 整合 RabbitMQ 傳送延時訊息Spring BootMQ
- RabbitMq基礎教程之基本概念MQ
- springboot2.0整合rabbitmqSpring BootMQ
- SpringBoot專案整合RabbitMQSpring BootMQ
- Rabbit學習---SpringBoot整合RabbitMQSpring BootMQ
- Spring Boot系列十七 Spring Boot 整合 websocket,使用RabbitMQ做為訊息代理Spring BootWebMQ
- rabbitMQ-Spring配置檔案MQSpring
- SpringBoot整合RabbitMQ(一)快速入門Spring BootMQ
- RabbitMQ(二)JavaClient SpringBoot整合 Work queuesMQJavaclientSpring Boot
- laravel微服務開發,整合rabbitmqLaravel微服務MQ
- 訊息型中介軟體之RabbitMQ基礎使用MQ
- RabbitMQ簡介以及與SpringBoot整合示例MQSpring Boot
- 個人學習系列 - SpringBoot整合RabbitMQSpring BootMQ
- RabbitMQ(一):RabbitMQ快速入門MQ
- RabbitMQ系列之---初識RabbitMQMQ
- RabbitMQ(二):RabbitMQ高階特性MQ
- Laravel5.6 整合 RabbitMQ 訊息佇列LaravelMQ佇列