什么事分布式事務:
多個服務同時修改記錄時,保證數據的一致性.
分布式思路:
- 通過在redis設置一個唯一鎖,如果存在key,則認為有其他客戶端在使用,等待鎖釋放。
- 如果不存在key,說明沒有客戶端使用,可以執行任務,執行完畢,解鎖,刪除key.
-
存在的問題1 :
獲得鎖后,服務宕機,由於key是唯一的,所以無法被刪除.
問題1解決方案
設置過期時間。
存在的問題2
任務執行過長,超過過期時間。
問題2解決方案
通過一個守護線程,給線程續命.
存在的問題3:
任務執行造成死循環,會造成無限續命.
問題3解決方案 :
設置最大續命時間。
