-
step1. 數據入庫同時消息(msg)入庫
step2.發送消息
step3.請求確認 confirm
step4.讀取數據庫msg消息修改狀態status:1
step5.但發送消息網絡中斷,通過定時任務查詢狀態為status:0的消息
step6.抓取消息,重新投遞
step7.最大嘗試次數 3次 不能成功則狀態修改為2。
查看全部 -
@Component
public class ContentInfoSender {
? ?@Autowired
? ?private RabbitTemplate rabbitTemplate;
? ?public void sendContentInfo(ContentInfo contentInfo){
? ? ? ?rabbitTemplate.convertAndSend(Constants.CONTENTEXCHANGE,Constants.CONTENTQUEUE + contentInfo.getMsgInfo().getAcceptUserId(),contentInfo);
? ?}
}查看全部 -
<!--整合rabbitmq-->
<dependency>
? ?<groupId>org.springframework.boot</groupId>
? ?<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>rabbitmq:
?host:
?port: 5672
?username:
?password:
?virtual-host:
?connection-timeout:查看全部 -
手工簽收模式必須依賴于channel
查看全部 -
topic模式,模糊匹配
查看全部 -
發送消息的方法介紹convertAndSend
查看全部 -
消息的優先級,延遲等
查看全部 -
課程總結
查看全部 -
RabbitMQ簡介
查看全部 -
課程大綱
查看全部 -
設計方案
查看全部 -
1
查看全部 -
1
查看全部 -
整體架構
Server:又稱為Broker,接受客戶端的連接,實現AMQP實體服務
Connection:連接,應用程序與Broker的網絡連接
Channel:網絡信道,幾乎所有的操作都在Channel中進行,Channel是進行消息讀寫的通道??蛻舳丝山⒍鄠€channel,每個Channel代表一個會話任務。
Message:消息。服務器和應用程序之間傳送的數據,由Properties和Body組成。Properties可以對消息進行修飾,比如消息的優先級,延遲等高級特性;Body則是消息體內容。
Virtual host:虛擬地址,用于進行邏輯隔離,最上層的消息路由。一個Virtual Host里面可以有若干個Exchange和Queue,同一個Virtual Host里面不能有相同名稱的Exchange或queue
Exchange:交換機,接收消息,根據路由鍵轉發消息到綁定的隊列。
Binding: Exchange 和Queue之間的虛擬連接,binding中可含有routing key。
Routing key: 一個路由規則,虛擬機可用它來確定如何路由一個特定消息。
Queue: 也稱為Message Queue,消息隊列,保持消息并將他們轉發給消費者。
消息如何流轉
生成者指定發送的Exchange和routing key,并發送信息到Exchange
exchange根據routing key ,把消息放到對應的Message Queue
消費者根據監聽的Message Queue,來進行消費。
消息如何流轉
1、生成者指定發送的Exchange和routing key,并發送信息到Exchange
2、exchange根據routing key ,把消息放到對應的Message Queue
3、消費者根據監聽的Message Queue,來進行消費。
查看全部 -
? 消息隊列測試
查看全部
舉報