Seata的TC(事務協調器)確實運行在Seata服務進程中,其高可用實現和宕機恢復主要通過以下機制實現:
一、高可用架構
-
集群部署
- 多TC節點組成集群,通過注冊中心(如Nacos)實現服務發現
- 采用Raft協議實現節點間數據同步
-
持久化存儲
store.mode = db // 推薦使用數據庫模式(搜索結果3/5) store.db.datasource = druid store.db.db-type = mysql
二、宕機恢復機制
1.事務狀態持久化
- 所有事務日志持久化到數據庫/文件系統
- 支持異步刷盤配置
- "快速故障轉移
宕機檢測 → 會話轉移 → 日志重放 → 事務恢復(搜索結果2)
三、最佳實踐
- 推薦使用組合方案
- 配置合理的
- 配合實現秒級故障檢測
當TC節點宕機時:
- 注冊中心30秒內標記節點不可用(搜索結果2)
- 其他健康節點自動接管未完成事務
- 宕機節點重啟后通過持久化日志恢復事務上下文(搜索結果3)