使用canal通過mysql的binlog日志對mysql進行監控


皮一萬。。。

        很久以前。。。。。。。。。。。。。。。。很好吃!!!(開玩笑 O(∩_∩)O哈哈~)

正文

        前段時間手里有個項目,需要讀取 mysql 數據庫的 binlog 日志對mysql進行監控,一時間感覺頭皮發麻(這個真不會),於是乎詢問度娘,度娘直接給出了一個近乎於完整的項目直接就可以使用,那就是 canal 組件。

        先來看一下網上對 canal 的說明:點我看原理

        下載地址:

            開發部署服務:https://github.com/alibaba/canal/releases

            開發實例項目:https://github.com/alibaba/canal

        說明:我理解的是下載的maven項目只是對邏輯處理的一個項目,而canal 部署開發包是用來啟動 canal 服務用的,要使用 canal 對數據庫進行監控

①:先配置好 canal 服務,啟動服務;②:找到程序的入口,運行

一、那么,先來看一下 canal 服務的配置以及啟動

        下載好的開發服務部署包,直接解壓



        進入 canal.deployer 這個文件中,能夠看到下面的目錄結構:



        進入 conf 這個文件中,能夠看到下面的目錄結構:



        spring文件夾中的配置文件一般情況下默認即可,如果有特殊的需求可以自行更改。

        canal.properties 文件中寫的是canal 服務器需要的一些配置,修改的地方不多



        example 文件中寫的是canal 服務器中配置實例的地方



        h2.mv.db 和 meta.dat 是對操作mysql數據庫的記錄(刪除這兩個文件不會對mysql數據庫中的數據有任何影響,只會對基於canal 服務而開發的項目產生影響,數據缺失),instance.properties 是實例的屬性文件


        這里有我總結的 canal 監控 mysql 數據庫的使用說明:點我下載使用說明

        按照步驟配置即可

二、接下來就是開發實例項目了

        下載下來的 canal 是一個maven項目,直接將項目導入到 idea 中然后正常配置maven項目就可以



        項目中,找到example這個目錄,開發的邏輯全都在這里



         SimpleCanalClientTest 這個類繼承了AbstractCanalClientTest ,成為程序的入口,啟動新的線程來讀取mysql的binlog日志,進而監控數據庫(也可以自己寫一個類繼承 AbstractCanalClientTest ),在AbstractCanalClientTest 這個類中,有一個process方法,這個方法就是用來監控數據庫並處理數據的



        實際操作的話,可以同步更新redis緩存、實時更新監控到的某個值的狀態、插入到數據庫中一條新紀錄等等都可以實現了,具體邏輯就要看開發需求了。

        至此,我利用 canal 服務監控mysql數據庫所學習掌握到的東西就都寫完了

引用http://agapple.iteye.com/blog/1796633

感謝!

結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM