1.匯入相關依賴
<!--rabbitmq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.配置相關配置application.yaml
spring:
rabbitmq:
host: 127.0.0.1
port: 5672
username: admin
password: qwe@123
#虛擬host 可以不設定,使用server默認host
#virtual-host: JCcccHost
#確認訊息已發送到交換機(Exchange)
publisher-confirms: true
#確認訊息已發送到佇列(Queue)
publisher-returns: true
3.交換機分為三種交換機



4.配置加入spring中
package com.zrp.mq.rabbitmq.config;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author 趙銳鵬
* @time 2021-09-16 11:06
*/
@Configuration
public class RabbitConfig {
@Bean
public RabbitTemplate createRabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate();
rabbitTemplate.setConnectionFactory(connectionFactory);
//設定開啟Mandatory,才能觸發回呼函式,無論訊息推送結果怎么樣都強制呼叫回呼函式
rabbitTemplate.setMandatory(true);
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean ack, String cause) {
System.out.println("ConfirmCallback: " + "相關資料:" + correlationData);
System.out.println("ConfirmCallback: " + "確認情況:" + ack);
System.out.println("ConfirmCallback: " + "原因:" + cause);
}
});
rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {
@Override
public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {
System.out.println("ReturnCallback: " + "訊息:" + message);
System.out.println("ReturnCallback: " + "回應碼:" + replyCode);
System.out.println("ReturnCallback: " + "回應資訊:" + replyText);
System.out.println("ReturnCallback: " + "交換機:" + exchange);
System.out.println("ReturnCallback: " + "路由鍵:" + routingKey);
}
});
return rabbitTemplate;
}
}
后面一些代碼就不貼出來啦 直接上傳到上去 直接下載代碼看就好啦
擴著的是整合mq的傳送門

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/348310.html
標籤:其他
上一篇:【Spring Cloud Alibaba 溫故而知新】(五)SpringCloud Sleuth + Zipkin:分布式日志追蹤
