聲明:此問主要內容翻譯自國外的這篇文章:https://dbasolved.com/2017/08/26/goldengate-classic-vs-microservices-architecture/
感謝原創作者的精彩分享。
Oracle GoldenGate從12c(12.3)版本開始,提供了新的基於微服務體系的軟體系統架構。新的微服務架構提供了很多新的特點和優勢。
我們開始討論GoldenGate新的微服務架構前,我們先來看看GoldenGate傳統的軟體架構是什麼樣的,下圖是GoldenGate傳統的軟體系統架構圖。
在GoldenGate的傳統系統架構中,GoldenGate的設置、管理工作都是通過GoldenGate的命令行接口(GGSCI)來完成的。GoldenGate需要部署在執行數據複製的資料庫伺服器上,我們通過部署在本地的GoldenGate的GGSCI命令行接口完成我們和本地部署的GoldenGate的交互。比如增加、管理GoldenGate的管理進程、數據抽取進程、數據泵進程、數據投遞進程等。在這個傳統的架構中數據通過TCP/IP網絡在源端和目標端完成數據的複製和同步。整體架構採用低耦合的軟體價格,所以GoldenGate可以用於多種場景,實現多種數據複製和同步的拓撲,比如:一對一、一對多、多對一、雙向等複製架構。
GoldenGate這種傳統的軟體架構,也有它的不足和局限。我們為了完成GoldenGate的管理任務,不得不遠程登陸到部署了GoldenGate的伺服器上來完成管理任務,這大大限制了GoldenGate的廣泛使用。
儘管GoldenGate的傳統架構已經被大家所熟知,但是面對現在新技術和新需求的挑戰,Oracle也在不斷地探索,經過不斷的發展和努力終於推出了GoldenGate新的基於微服務體系架構的新的軟體系統。新的體現架構可以基於標準的「RESTfulAPI」方法來構建,這是在數據複製領域的一次新的飛躍。這徹底打破了在GoldenGate的管理、訪問、使用上的限制,讓GoldenGate可以有更廣泛的應用場景。用戶可以通過標準的API來控制和訪問GoldenGate。下圖是GoldenGate新的基於微服務的系統架構圖。
從上圖可以看出,GoldenGate新的微服務架構,去掉了傳統體系架構中的一些組件,增加了一些新的組件,通過這些新的組件,GoldenGate獲得了如下新的優勢:
為了了解GoldenGate新的微服務架構體系,我們需要了解一下GoldenGate新的微服務架構的幾個核心組件:
ServiceManager:
它是一個運行在GoldenGate數據複製環境的每一個伺服器上的監護進程,它可以有三種運行方式:
手動運行
做為後臺服務進程自動運行
可以運行在資料庫的集群環境(XAG)
當它運行的時候,它是我們連接GoldenGate環境的唯一入口點,當我們配置這個進程的時候,我們需要為它分配埠,通過ServiceManager的WEB訪問埠,我們可以看到我們所有的GoldenGate的進程。
AdminServer:
它可以完全替換傳統GoldenGate架構中的GGSCI,通過它我們可以為GoldenGate設置credential store、數據抽取進程、數據投遞進程等。我們大部分的GoldenGate管理工作都是通過它來完成的。同時我們可以通過它下鑽到GoldenGate運行的進程並監控它們的狀態、查看參數文件、檢查進程報告等。通過使用它讓我們對GoldenGate的管理變得越來越簡單。
下圖是兩者的主要區別對比:
DistributionServer:
它是用來替換傳統架構中的數據泵進程的。它可以完成除了數據轉換外的所有數據泵的工作。它也給我們提供了數據複製的可視化的視圖,讓我們清楚地了解GoldenGate數據複製的流向。
ReceiverServer:
這個進程用來替換傳統架構中的Collector進程,它接收來自DistributionServer進程傳輸過來的數據並把它們寫入到遠端的隊列文件中。通過進程運行的概覽頁我們可以清楚地看出數據從哪裡來寫入到哪裡去。
Performance Metrics Server:
這個進程為用戶提供了一個實時監控GoldenGate運行的服務。但是當我們使用這個功能前,需要事先訂購了Oracle Management Pack for GoldenGate組件。我們通過圖形化和多種性能監控的API完成對GoldenGate的監控。
我們看到了GoldenGate新的微服務架構給我們帶來的無限的驚喜,我們可以利用這些新的改變在更廣泛的領域和環境來應用GoldenGate數據複製解決方案。相信我們在本地環境、在雲端和混合雲環境將看到更多的GoldenGate的應用案例。