天天看點

springboot使用RabbitMQ教程

1、安裝rabbitmq

docker安裝,拉取鏡像

docker pull rabbitmq:management

建立容器并啟動

docker run -d --name rabbitmq --publish 5671:5671 --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 rabbitmq:management

管理位址:

2、配置springboot

(1)pom.xml添加依賴

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-amqp</artifactId>

</dependency>

(2)添加rabbit配置檔案,配置server資訊

import org.springframework.amqp.core.Queue;

import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;

import org.springframework.amqp.rabbit.connection.ConnectionFactory;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

@Author 馮戰魁

<a href="mailto:br/%3E%7D%3Cbr/%3E@Bean%3Cbr/">(3)建立生産者,循環下發四個任務,用sleep模拟任務處理時間,一個.代碼任務處理1s的時長,分别有四個不同時長的任務下發 import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /**</a>

<a href="mailto:br/%3E%7D%3Cbr/%3E@Bean%3Cbr/"></a>

<a href="mailto:br/%3E%7D%3Cbr/%3E@Bean%3Cbr/">@Author 馮戰魁</a>

<a href="mailto:br/%3E@RequestMapping(">(4)建立兩個消費者Receiver1,Receiver2處理隊列的任務</a>

<a href="mailto:br/%3E@RequestMapping("></a>

<a href="mailto:br/%3E@RequestMapping(">Receiver1: import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; /**</a>

<a href="mailto:br/%3E@RequestMapping(">@Author 馮戰魁</a>

<a href="mailto:br/%3E@RabbitHandler%3Cbr/">Receiver2: import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; /**</a>

<a href="mailto:br/%3E@RabbitHandler%3Cbr/"></a>

<a href="mailto:br/%3E@RabbitHandler%3Cbr/">@Author 馮戰魁</a>

然後檢視終端輸出的資訊,如圖所示

springboot使用RabbitMQ教程

可以看到最先完成的消費者去執行下一個任務,是按任務時長執行,并不是按任務個數平分,防止消費者無意義的等待,提高效率。

檢視rabbit的管理端http://localhost:15672/

可以看到已經生成隊列

springboot使用RabbitMQ教程

至此整個任務完成!

本文轉自 無心低語 51CTO部落格,原文連結:http://blog.51cto.com/fengzhankui/2060275,如需轉載請自行聯系原作者