一、下載源碼
我這里用的是canal-1.1.4版本
-
源碼結構
client-adapter項目就是本次要部署運行的
-
源碼導入到IDEA中的結構如下:
二、安裝配置
- 找到manven模塊中有root的那個模塊,然后點擊install進行安裝
待安裝完成后,會在對應的項目的target目錄下產生相應的運行包,如果不想在開發工具中運行的話,直接拷貝對應的包即可。
-
修改launcher的application.yml配置
-
es adapter配置
在launcher項目中的配置文件下創建es目錄並加入所需要同步的配置文件
三、運行調試
配置完畢后,直接運行launcher這個springBoot項目即可,也就是運行CanalAdapterApplication這個類就可以了。
當看日志提示啟動成功后就代表啟動成功了!
四、測試驗證
增量同步測試跟canal-adapter安裝包部署運行一樣,這里主要介紹及測試一下條件同步和全量同步功能,即etl功能。
launcher項目是一個spring boot項目,在其中的rest包下有一個controller類(CommonRest.java),里面提供了一些接口,其中一個用於全量同步數據的接口
-
canal全量同步
我們按照注釋的內容發送一個http請求即可:
canal_db1.yml為es目錄下的配置文件,運行后出現以下提示信息,就可以讓canal_db1.yml配置的數據表的所有數據全同步到es中了
在kibana中查看數據是否已經生成:
-
canal條件同步
如果想執行從某一個時刻的數據同步,在上面的測試URL后加上對應的參數就可以了
其參數由es的配置項決定的,以下截圖的配置文件中的etlCondition:
五、修改源碼
以下代碼增加了從索引模板中獲取mapping的處理邏輯:
重新編譯打包:
在項目的target目錄下,會生成編譯后的包,我這里修改的是es相關的,路徑如下:
更新到canal-adapter的plugin目錄下,重新服務就可以了。