canal 學(xué)習(xí)筆記 —— canal admin

今天決定引入 canal admin 來管理 canal server, 關(guān)于 canal server 的筆記在我之前寫的文章中 http://www.reibang.com/p/23ae08609e2d, http://www.reibang.com/p/2f3000c6410f

1. 準備 canal admin

  1. 下載 https://github.com/alibaba/canal/releases/tag/canal-1.1.4 里面的 canal.admin-1.1.4.tar.gz 文件
  2. 解壓到指定目錄
mkdir canal.admin-1.1.4
tar -xvzf canal.admin-1.1.4.tar.gz -C canal.admin-1.1.4
  1. 修改 bin/restart.sh
#!/bin/bash
SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd)
sh $SCRIPT_DIR/stop.sh
sh $SCRIPT_DIR/startup.sh
  1. 修改 conf/application.yml
address: 127.0.0.1:3307
username: root
password: 123456
  1. 初始化數(shù)據(jù)庫
source conf/canal_manager.sql

2. 使用 canal admin

1. 啟動 canal admin
canal.admin-1.1.4/bin/startup.sh
2. 啟動 canal server

這里要加啟動參數(shù) local, 以最小配置文件 conf/canal_local.properties 啟動 canal server, conf/canal_local.properties 只提供了與 canal admin 通信所需要的相關(guān)配置鸠补,除此之外的 destination/mq 等等配置信息都沒有,canal server 運行需要的更多配置信息全都由 canal admin 提供,也就是 canal_manager.canal_config 表的數(shù)據(jù)

canal.deployer-1.1.4/bin/startup.sh local
3. 登錄 canal admin
  • canal_manager.canal_admin 是 canal admin 的用戶表,初始化的時候會創(chuàng)建一個用戶 admin:123456, 可以用這個用戶登錄系統(tǒng)杈曲,登錄之后可以看到已經(jīng)存在一個 canal server, 這就是我們之前啟動的那個
  • 在 canal admin 上創(chuàng)建 cluster, server, instance 非常簡單方便,這里不再贅述操作過程蠢护,可以參考官方文檔 https://github.com/alibaba/canal/wiki/Canal-Admin-Guide堤结,這些操作的數(shù)據(jù)最終會保存在 canal_manager 數(shù)據(jù)庫中

3. 分析 canal admin

1. 引入 canal admin 之后 canal server 的數(shù)據(jù)存儲
  • 配置信息 (canal.properties/instance.properties) 全部存儲在 canal_manager 數(shù)據(jù)庫中
  • 日志信息 (instance.log/meta.log/canal.log/canal_stdout.log) 仍然像引入 canal admin 之前一樣必怜,存儲在 canal.deployer-1.1.4/logs 目錄
  • 緩存信息 (h2.mv.db/meta.dat) 也是像引入 canal admin 之前一樣肉拓,存儲在 canal.deployer-1.1.4/conf/instance 目錄
2. canal admin 的數(shù)據(jù)庫 canal_manager
  • canal_user: 用戶表,用于保存登錄 canal admin 的用戶, 密碼生成方式 select password('xxxxxx')
  • canal_cluster: cluster 表梳庆,用于保存 canal cluster 的基本信息
  • canal_node_server: server 表暖途,用于保存 canal server 的基本信息
  • canal_config: 全局配置表,用于保存 cluster 和 server 的配置信息膏执,相當(dāng)于 canal.properties 文件
  • canal_instance_config: instance 表驻售,用于保存 instance 的基本信息和配置信息,相當(dāng)于 instance.properties 文件
3. canal server 與 canal admin 的認證機制
  • canal admin 的 conf/application.yml 里面定義了賬號密碼明文 canal.adminUser:canal.adminPasswd
  • canal server 的 conf/canal_local.properties 里面定義了賬號密碼密文 canal.admin.user:canal.admin.passwd
  • 密文的生成方式: select password('xxxxxx');
  • 雙向認證: canal server 向 canal admin 注冊的時候會以密碼密文做認證, canal admin 對 canal server 做連通性測試的時候也會將密碼明文加密之后做認證 (連通性測試失敗的時候更米,canal admin web 會顯示對應(yīng)的 canal server 處于 "斷開" 狀態(tài))
4. instance 動態(tài)加載機制
  • 在引入 canal admin 之前欺栗,可以通過修改 conf/canal.properties 文件設(shè)置 canal.auto.scan = true 來達到動態(tài)加載 instance 的目的,canal server 會主動查詢 canal.conf.dir = ../conf 目錄來增刪 instance
  • 在引入 canal admin 之后征峦,之前在 conf/canal.properties 文件里面的 destinations 相關(guān)的配置不再起作用迟几。instance 必須和 canal server 綁定,canal server 運行過程中會根據(jù)綁定關(guān)系動態(tài)加載 instance
5. 疑惑
  • canal admin 有一個新功能 : 啟動/停止 instance, 這是之前的裸奔 canal server 不具有的功能栏笆,但是在使用過程中發(fā)現(xiàn)了一些問題
  • 在集群模式下通過 canal admin 啟動/停止某一個 instance 是起作用的类腮,canal_manager.canal_instance_config 表里面的數(shù)據(jù)會更新狀態(tài) status = 0, 然后 canal admin 會與 canal server 通信并關(guān)閉進程
  • 但是在單機模式下通過 canal admin 啟動/停止某一個 instance, 只會更新 canal_manager.canal_instance_config 表的數(shù)據(jù),并不會真的停止 instance 的對外服務(wù)蛉加,如果有 binlog 更新仍然會寫到 Kafka
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蚜枢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子针饥,更是在濱河造成了極大的恐慌祟偷,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件打厘,死亡現(xiàn)場離奇詭異,居然都是意外死亡贺辰,警方通過查閱死者的電腦和手機户盯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門嵌施,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莽鸭,你說我怎么就攤上這事吗伤。” “怎么了硫眨?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵足淆,是天一觀的道長。 經(jīng)常有香客問我礁阁,道長巧号,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任姥闭,我火速辦了婚禮丹鸿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘棚品。我一直安慰自己靠欢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布铜跑。 她就那樣靜靜地躺著门怪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锅纺。 梳的紋絲不亂的頭發(fā)上掷空,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音伞广,去河邊找鬼拣帽。 笑死,一個胖子當(dāng)著我的面吹牛嚼锄,可吹牛的內(nèi)容都是我干的减拭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼区丑,長吁一口氣:“原來是場噩夢啊……” “哼拧粪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沧侥,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤可霎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宴杀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體癣朗,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年旺罢,在試婚紗的時候發(fā)現(xiàn)自己被綠了旷余。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绢记。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖正卧,靈堂內(nèi)的尸體忽然破棺而出蠢熄,到底是詐尸還是另有隱情,我是刑警寧澤炉旷,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布签孔,位于F島的核電站,受9級特大地震影響窘行,放射性物質(zhì)發(fā)生泄漏饥追。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一抽高、第九天 我趴在偏房一處隱蔽的房頂上張望判耕。 院中可真熱鬧,春花似錦翘骂、人聲如沸壁熄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽草丧。三九已至,卻和暖如春莹桅,著一層夾襖步出監(jiān)牢的瞬間昌执,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工诈泼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留懂拾,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓铐达,卻偏偏與公主長得像岖赋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瓮孙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容