為了簡化用戶使用SDK的復雜度,DTS實現了SDK容災機制。這個機制依賴于SDK消費數據時,向DTS中控節點實時匯報消費時間點。本小節簡單介紹如何使用DTS提供的SDK容災機制。
要求
- SDK消費代碼中,每消費一個message要調用一次ackAsConsumed,向DTS匯報消費時間點。
- 同一個訂閱通道至少啟動2個SDK下游互為主備。
消費架構圖
DTS的一個訂閱通道只能有一個SDK拉取到增量數據。如果在一個訂閱通道中接多個SDK下游,那么只有其中一個訂閱SDK能夠接收到增量數據。根據這個原理,可以搭建SDK災備架構。
在上圖這個示例架構中,對一個訂閱通道中,接了兩個SDK消費下游,這兩個SDK互為主備,同一個時間內,只有主SDK能訂閱并消費到增量數據。當主SDK異?;蚴浅霈F網絡連接異常時,DTS會自動failover漂移到備SDK上,同時使用最后消費的時間點啟動備SDK。主SDK每消費一條數據,會向DTS控制系統匯報一個ACK,即向控制系統匯報消費時間點。