第三方組件信息

組件信息介紹

1、這個組件是什麼?

2、橫向產品對比,以及此組件的主要優劣勢是什麼?

4、你選擇這個組件的原因是什麼?

工作原理

1、其他關鍵信息(如配置的相關信息)

應用場景

組件測試

測試環境搭建:

測試環境不侷限於硬件環境,不管是理論的區分還是硬件的區分都可以, 主要是必須從某個角度進行環境區分

1、需要在開發機搭建的環境提前:拿到第三方組件信息發送環境搭建的申請郵件(環境搭建包括但不侷限於自建服務和購買雲服務)

2、輸出測試結論,對第三方組件性能進行評估

mirror環境搭建:

測試環境結束後進入mirror環境測試,需要提前告知運維人員進行mirror環境準備工作,mirror測試完成之後輸出測試結論,以及評估上線風險,和運維人員共同協商解決方案。

組件上線

線上環境搭建:

環境搭建完成之後模擬測試,配置組件 監控項 ,進行監控測試,及時調整監控策略,組件上線之後的一個週期需要投入精力觀察線上運行情況,進行必要信息記錄,完成第三方組件上線文檔輸出。

:warning: 注意信息

1)組件信息介紹這一部分是在調研期間完成,開始測試之前需要將組件信息介紹這一部分發送郵件同步。

2)之後開始準備測試等環境,收集相關測試結果,測試完成之後郵件形式同步測試結果

3)搭建mirror環境,收集相關測試結果,mirror測試完成之後郵件形式同步mirror測試結果

4)彙總以上+線上實際運行情況形成沉澱進行同步。

範文

拿之前在遷移數據庫中做過的DTS數據遷移服務作爲簡單的範文介紹,《 自建MySQL數據庫遷入雲服務 》。還有一些沉澱比如: 消息中間件kafka全面解析 、Amazon SQS消息隊列,這些前置沉澱就是第三方組件上線需要跟大家同步的信息,供參考。

第三方組件信息

組件信息介紹:

1、DTS是數據傳輸服務,集數據遷移/訂閱/同步於一體,構建安全、可擴展、高可用的數據架構。

2、橫向產品對比,以及此組件的主要優劣勢是什麼?

  • 使用mysqldump以及工具進行數據傳輸

    • 無法滿足實時同步,線上測試

    • 數據量大導出+導入時間過長

    • 數據導出有泄露風險

  • 使用DTS可以有效解決mysqldump帶來的問題且主要優勢如下:

    • DTS具備鏈路穩定性和數據可靠性

    • 數據傳輸支持同/異構數據源之間的數據交互,提供數據遷移/訂閱/同步交互功能

    • 支持節點的故障容災,可實現鏈路的秒級恢復

    • 支持斷點續傳,可有效解決因硬件、網絡等異常導致的傳輸中斷。

4、你選擇這個組件的原因是什麼?

要進行數據庫從自建mysql遷移的Aliyun的RDS mysql服務中。遷移過程中需要保證 數據實時傳輸且 保證數據的完整性,在遷移過程中儘量不對業務有影響。DTS可以滿足實時傳輸,可以在前期的測試結束之後將線上業務中對數據庫讀的量 提前遷移到RDS進行線上驗證,DTS可以滿足相關需求,且有強大的售後服務和遷移過程中的在線支持,能夠完整保證服務在遷移過程中運行的穩定性。

工作原理:

1、系統架構(官網提供)

架構說明

  • 系統高可用

    數據傳輸服務內部每個模塊都有主備架構,保證系統高可用。容災系統實時檢測每個節點的健康狀況,一旦發現某個節點異常,會將鏈路秒級切換到其他節點。

  • 數據源地址動態適配

    對於數據訂閱及同步鏈路,容災系統還會監測數據源的連接地址切換等變更操作,一旦發現數據源發生連接地址變更,它會動態適配數據源新的連接方式,在數據源變更的情況下,保證鏈路的穩定性。

2、數據遷移基本原理

數據遷移提供多種遷移類型:結構對象遷移、全量數據遷移及增量數據遷移。如果需要實現不停服遷移,需要選擇結構對象遷移、全量數據遷移和增量數據遷移。

對於異構數據庫之間的遷移,DTS會從源庫讀取結構定義語法,根據目標數據庫的語法定義,將語法重新組裝成目標數據庫的語法格式,並導入到目標實例中。

全量數據遷移過程持續較久,在這過程中,源實例不斷有業務寫入,爲保證遷移數據的一致性,在全量數據遷移之前會啓動增量數據拉取模塊,增量數據拉取模塊會拉取源實例的增量更新數據,並解析、封裝、存儲在本地存儲中。

當全量數據遷移完成後,DTS會啓動增量日誌回放模塊,增量日誌回放模塊會從增量日誌讀取模塊中獲取增量數據,經過反解析、過濾、封裝後遷移到目標實例,從而實現增量數據遷移。

我們在遷移過程中使用到了DTS的增量遷移也就是實時同步

3、實時同步基礎原理

實時同步功能能夠實現兩個數據源之間的增量數據實時同步。DTS將陸續支持OLTP->OLAP的數據實時同步。

同步鏈路的創建過程如下:

  • 同步初始化

    將源實例的歷史存量數據在目標實例初始化一份。

  • 增量數據實時同步

    當初始化完成後進入兩邊增量數據實時同步階段,該階段DTS將實現源實例和目標實例的數據動態同步。

增量數據實時同步過程,DTS的底層實現模塊主要包括:

  • 日誌讀取模塊

    日誌讀取模塊從源實例讀取原始數據,經過解析、過濾及標準格式化,最終將數據在本地持久化。日誌讀取模塊通過數據庫協議連接並讀取源實例的增量日誌。如果源數據庫爲RDS MySQL,那麼數據抓取模塊通過Binlog dump協議連接源庫。

  • 日誌回放模塊

    日誌回放模塊從日誌讀取模塊中請求增量數據,並根據用戶配置的同步對象進行數據過濾,然後在保證事務時序性及事務一致性的前提下,將日誌記錄同步到目標實例。

應用場景:

不停機遷移數據庫 (我們的場景就是不停機遷移數據庫)

數據異地災備

異地多活

組件測試

在這裏簡單介紹一下測試過程,無法提供截圖信息供參考

1、使用DTS進行數據同步,同步完成之後進行數據驗證,當時是寫腳本進行數據比對,主要校驗的表(數據校驗代替測試測試階段)

2、mirror測試階段

保持使用DTS數據實時同步中,切換mirror環境的數據庫連接讀的地址到RDS上面進行數據讀取,測試同學配合驗證mirror環境讀數據相關的數據驗證。

組件上線

這裏的組件上線就是保持DTS數據同步,切換線上環境數據庫讀的量到RDS上面進行數據讀取,線上實測DTS同步的數據 。

以上是大概的範文示例,由於組件或服務不同應用的場景也不同,請參照第三方組件上線必讀完成組件上線相關內容。

拖地先生,從事互聯網技術工作,在這裏每週兩篇文章,聊聊日常的實踐和心得。往期推薦:

說說這個公衆號

平均響應1000ms到200ms,PHP和Go那家強?

崩潰率從1%到0.02%,iOS穩定性解決之道

七招優化Android包體減少30%

技術產品職業瓶頸?29份騰訊通道材料教你成長

低頭趕路,也別忘了抬頭看天

加班能解決交付的期望麼?

如果對你有幫助,讓大家也看看唄~

相關文章