(二)springboot中使用Rabbitmq
一、在springboot專案中使用Rabbitmq
業務模型圖如下:
使用rabbitMQ的routing交換機模式,視訊處理程式監聽視訊處理佇列
二、訊息傳送端使用步驟:
2.1首先引入rabbitmq的啟動依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.2rabbitmq的引數配置 及Queue佇列名稱和rountingkey配置
#rabbitmq連線引數
spring
rabbitmq
host:localhost
port:5672
username:lq
password:123456
# 佇列和rounting-key配置
xc‐service‐manage‐media:
mq:
queue‐media‐video‐processor: queue_media_video_processor
routingkey‐media‐video: routingkey_media_video
2.3、RabbitMQ配置如下:
下面的配置類程式碼,生產方和消費方都是需要寫的,因為不知道哪一方先啟動,因此為了兩方都不報錯,所以 兩方都配置。
@Configuration
public class RabbitMQConfig {
//Exchange
public static final String EX_MEDIA_PROCESSTASK = "ex_media_processor";
//視訊處理佇列
@Value("${xc‐service‐manage‐media.mq.queue‐media‐video‐processor}")
public String queue_media_video_processtask;
//視訊處理路由
@Value("${xc‐service‐manage‐media.mq.routingkey‐media‐video}")
public String routingkey_media_video;
/***
* 配置一個交換機 Bean
* @return the exchange
* */
@Bean(EX_MEDIA_PROCESSTASK)
public Exchange EX_MEDIA_VIDEOTASK() {
return ExchangeBuilder.directExchange(EX_MEDIA_PROCESSTASK).durable(true).build();
}
//宣告一個佇列 Bean
@Bean("queue_media_video_processtask")
public Queue QUEUE_PROCESSTASK() {
Queue queue = new Queue(queue_media_video_processtask, true, false, true);
return queue;
}
/*** 佇列 與交換機進行繫結(指定能夠對映到這個佇列的 rounting-key的規則)
*
* @param queue the queue
* * @param exchange the exchange
* * @return the binding
* */
@Bean
public Binding binding_queue_media_processtask(@Qualifier("queue_media_video_processtask") Queue queue, @Qualifier(EX_MEDIA_PROCESSTASK) Exchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with(routingkey_media_video).noargs();
}
}
2.4訊息傳送程式碼:
2.5進行訊息校驗
傳送過去的訊息 可以在rabbitmq的web介面端進行校驗,檢視交換器、佇列是否建立,,訊息是否傳送過去。
三、訊息接收端使用步驟
3.1接收端的程式碼:
注意:
- 每個使用了
@RabbitListener
註解的方法,可以用來監聽佇列。queues={}
,大括號中可以寫多個佇列名,,用來監聽多個佇列。 - 方法的這3個形參,都可以拿到傳送端發來的訊息。
引數1:是訊息字串,把傳送端傳送的訊息 轉成了字串。
引數2:訊息物件,裡面有很多訊息相關的屬性
引數3:通道,是一種原始的方式,,通過這種方式也可以拿到。
相關文章
- springboot中YAML使用二Spring BootYAML
- RabbitMQ(二)JavaClient SpringBoot整合 Work queuesMQJavaclientSpring Boot
- RabbitMQ -springboot整合rabbitmqMQSpring Boot
- SpringBoot 整合 rabbitmqSpring BootMQ
- Springboot整合RabbitMQSpring BootMQ
- RabbitMQ系列(二)深入瞭解RabbitMQ工作原理及簡單使用MQ
- RabbitMQ(二):RabbitMQ高階特性MQ
- SpringBoot整合RabbitMQ之典型應用場景實戰二Spring BootMQ
- Java SpringBoot 整合 RabbitMQJavaSpring BootMQ
- Springboot + rabbitMq佇列Spring BootMQ佇列
- RabbitMQ使用教程(二)RabbitMQ使用者管理,角色管理及許可權設定MQ
- RabbitMQ入門到進階(Spring整合RabbitMQ&SpringBoot整合RabbitMQ)MQSpring Boot
- RabbitMQ - SpringBoot 案例 - fanout 模式MQSpring Boot模式
- RabbitMQ - SpringBoot 案例 - direct 模式MQSpring Boot模式
- RabbitMQ - SpringBoot 案例 - topic 模式MQSpring Boot模式
- springboot2.0整合rabbitmqSpring BootMQ
- SpringBoot專案整合RabbitMQSpring BootMQ
- RabbitMq--與SpringBoot整合MQSpring Boot
- springboot(八):RabbitMQ詳解Spring BootMQ
- 二、RabbitMQ 進階特性及使用場景 [.NET]MQ
- SpringBoot2--RabbitMQ訊息Spring BootMQ
- Rabbit學習---SpringBoot整合RabbitMQSpring BootMQ
- ASP.NET Core知識之RabbitMQ元件使用(二)ASP.NETMQ元件
- SpringBoot:初探 RabbitMQ 訊息佇列Spring BootMQ佇列
- SpringBoot整合RabbitMQ(一)快速入門Spring BootMQ
- 個人學習系列 - SpringBoot整合RabbitMQSpring BootMQ
- RabbitMQ學習系列二:.net 環境下 C#程式碼使用 RabbitMQ 訊息佇列MQC#佇列
- Go Rabbitmq 使用GoMQ
- RabbitMQ基本使用MQ
- laravel rabbitmq 使用LaravelMQ
- springboot中RedisTemplate的使用Spring BootRedis
- SpringBoot 中 JPA 的使用Spring Boot
- RabbitMQ學習之(一)_初步瞭解RabbitMQ、RabbitMQ的使用流程、為什麼要使用RabbitMQ、RabbitMQ的應用場景MQ
- SpringBoot2.0應用(三):SpringBoot2.0整合RabbitMQSpring BootMQ
- RabbitMQ簡介以及與SpringBoot整合示例MQSpring Boot
- RabbitMQ系列(五)使用Docker部署RabbitMQ叢集MQDocker
- RabbitMQ 使用場景MQ
- .net core使用RabbitMQMQ