標籤:

php如何不修改一句業務代碼實現整庫數據變化實時監控?

某些業務場景,我們既不想改變現有的業務代碼,又想知道現有系統的運行狀況,怎麼辦?

百度下現有的一些解決方案,第一個看到的是這個:PHP Client for Mysql Binlog,一個軟體、一個擴展,c++開發,對於一個php項目而言是比較重的架構!另外一看時間,好幾年未更新了,能跟上php7的步伐?有坑有木有?考慮到維護成本、學習成本,果斷放棄!!

作為一個優秀的程序猿,還是自己動手豐衣足食哇!

綜合看了一些網上mysql數據監控的解決方案,均提到了監控mysql日誌,貌似頓開,找到了方向!github轉一遍,失望!!並沒有找到滿意的框架!!最終還是決定自定動手

第一次嘗試監控mysql的general log,發現此日誌僅僅記錄了操作的一些sql,並不能滿足監控數據變化的需求,放棄!

第二次嘗試,binlog-row格式,具體是一個什麼樣的日誌請自行腦補,簡單描述:binlog,row格式詳細記錄了每一次數據變化,更新操作記錄變更前和變更後的數據,刪除的數據、新增的數據均詳細記錄!再次找到突破點!可是二進位格式,如何監控和增量解析?又是一個頭疼的技術活!!!

。。。學習ing

最終成果:jilieryuyi/wing-binlog: php mysqlbinlog 事件採集系統

框架描述,增量分析binlog日誌文件,得到變化的數據並且轉換為可通知的事件,獨立於任何業務系統!

目前框架提供兩種通知方式,redis隊列和http的方式,第一種redis隊列,只需要監控隊列的變化,pop處理即可,第二種更加簡單,接收數據處理即可,更詳細的內容請看項目的readme文檔哦!

原文:yuyi

推薦閱讀:

4.5 資料庫表-博客後端Api-NodeJs+Express+Mysql實戰
使用ECharts如何從mysql資料庫取數據顯示在頁面?
雲資料庫MySQL測試的正確姿勢
如何用C++介面備份MySQL的二進位數據?

TAG:PHP | MySQL |