1.Windows RabbitMQ安裝
- 官網(wǎng)下載:RabbitMQ-3.7.2.exe
- 安裝完畢進(jìn)入/sbin目錄, 啟動(dòng)CMD
- 開啟管理界面
<!--1.查看已安裝插件-->
rabbitmq-plugins.bat list
<!--2.開啟管理界面-->
rabbitmq-plugins.bat enable rabbitmq_management
- 創(chuàng)建用戶, 賦予權(quán)限
<!--1.創(chuàng)建用戶->
rabbitmqctl.bat add_user tiger 123456
<!--2.賦予角色-->
rabbitmqctl.bat set_user_tags tiger administrator
<!--3.設(shè)置權(quán)限-->
rabbitmqctl.bat set_permissions -p / .* .* .*
- 訪問管理界面: http://127.0.0.1:15672/
2.配置工程
1.pom配置, 在Spring Boot工程中引入amqp依賴, RabbitMQ為默認(rèn)實(shí)現(xiàn)
<!--Spring Boot AMQP協(xié)議快速啟動(dòng) 包括Boot Starter, Massaging, RabbitMQ-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.配置生產(chǎn)者
- application.yml配置, 啟動(dòng)端口和RabbitMQ一些初始化配置
server:
port: 8081 #應(yīng)用端口號(hào)
spring:
application:
name: amqp-provider #應(yīng)用名稱
rabbitmq:
host: localhost #RabbitMQ 地址
port: 5672 #監(jiān)聽端口號(hào)
username: tiger #用戶名
password: 123456 #密碼
- 創(chuàng)建Send服務(wù)類
/**
* 發(fā)送消息到RabbitMQ
* 維護(hù)Queue名稱
*/
@Component
public class AmqpSenderService {
private static final Logger _LOGGER = LoggerFactory.getLogger(AmqpSenderService.class);
@Autowired AmqpTemplate amqpTemplate;
/**
* 發(fā)送消息
* @param message
*/
public void send (String message) {
_LOGGER.info("Send message: {}", message);
amqpTemplate.convertAndSend("ko-queue", message);
}
}
- 單元測(cè)試發(fā)送消息
@SpringBootTest
@RunWith(SpringRunner.class)
public class AmqpTests {
@Autowired
AmqpSenderService amqpSenderService;
@Test
public void sendTest () {
for (int i = 1; i < 100; i++) {
amqpSenderService.send("message" + i);
}
}
}
3.配置消費(fèi)者
- application.yml配置, 修改端口號(hào), 與provider區(qū)別
server:
port: 8082 #應(yīng)用端口號(hào)
spring:
application:
name: amqp-provider #應(yīng)用名稱
rabbitmq:
host: localhost #RabbitMQ 地址
port: 5672 #監(jiān)聽端口號(hào)
username: tiger #用戶名
password: 123456 #密碼
- 創(chuàng)建消息接收
@Component
//監(jiān)聽的消息隊(duì)列
@RabbitListener(queues = "ko-queue")
public class RabbitReceiver {
private static final Logger _Logger = LoggerFactory.getLogger(RabbitReceiver.class);
@RabbitHandler
public void process (String message) {
_Logger.info("Receiver message: {}", message);
}
}
3.啟動(dòng)
- 啟動(dòng)RabbitMQ: /sbin/rabbitmq-server.bat
- 啟動(dòng)消費(fèi)者:AmqpConsumerApplication
- 啟動(dòng)生產(chǎn)者單元測(cè)試:AmqpTests.sendTest()
4.結(jié)束
5.實(shí)例
Github
: Spring Boot 使用RabbitMQ demo