場景:
上游實時傳送mq,需要應用進行消費,解析mq資料並進行計算將最終結果傳送給下游。允許秒級延時
方案設計考慮:
1 需要防頻
2 考慮訊息重試
3 歷史資料查詢
4 訊息體有過期時效
具體方案:
mq採用監聽方式,先進性訊息的基本驗證,redis防重驗證。
驗證成功後先落庫並進行redis儲存(過期時間預設1天),其中落庫和redis進行事務控制。 -》@transactional(rollbackfor = exception.class)
表字段增加過期時間,以及最大重試次數,以及下次任務執行時間
分布式任務進行掃表根據執行時間,過期時間等來查詢待執行資料,redis防重(1分鐘),執行任務。失敗設定下次執行,並延後10分鐘。
成功後保留資料到es 並刪除mysql 資料
通過MQ進行A和B之間的雙向通訊
現在有兩台機器a和b,分別安裝了mq6.0,我要通過mq進行a和b之間的雙向通訊。我打算分兩步,第一步 實現a到b的資料傳輸。在a上 1 建立佇列管理器 qm 1001。2 建立本地佇列 lq 1001 3 建立傳輸佇列 xq 1001 4 建立遠端佇列 rq 1002 5 建立傳送方通道 1001...
聊聊mq中訊息消費的幾種方式
對mq了解不是很多的,可以看一下下面兩篇文章 聊聊mq的使用場景 聊聊業務系統中投遞訊息到mq的幾種方式 聊聊訊息消費的幾種方式 如何確保訊息至少消費一次 如何保證訊息消費的冪等性 從消費者的角度出發,分析一下訊息消費的兩種方式 push方式 pull方式 mq接收到訊息 mq主動將訊息推送給消費者...
聊聊mq中訊息消費的幾種方式
對mq了解不是很多的,可以看一下下面兩篇文章 聊聊mq的使用場景 聊聊業務系統中投遞訊息到mq的幾種方式 聊聊訊息消費的幾種方式 如何確保訊息至少消費一次 如何保證訊息消費的冪等性 從消費者的角度出發,分析一下訊息消費的兩種方式 push方式 pull方式 mq接收到訊息 mq主動將訊息推送給消費者...