1. 程式人生 > 其它 >億級流量電商平臺之多級快取架構快取一致性

億級流量電商平臺之多級快取架構快取一致性

前言

資料庫中資料發生變更,如何更新Redis快取呢?如何更新Nginx快取呢?
我們可以使用阿里巴巴的技術解決方案Canal來實現,通過Canal監聽資料庫變更,並實時消費變更資料,並更新快取。

canal [kə'næl]**,譯意為水道/管道/溝渠,主要用途是基於 MySQL 資料庫增量日誌解析,提供增量資料訂閱和消費

學習地址:https://github.com/alibaba/canal

早期阿里巴巴因為杭州和美國雙機房部署,存在跨機房同步的業務需求,實現方式主要是基於業務 trigger 獲取增量變更。從 2010 年開始,業務逐步嘗試資料庫日誌解析獲取增量變更進行同步,由此衍生出了大量的資料庫增量訂閱和消費業務。

基於日誌增量訂閱和消費的業務包括

  • 資料庫映象
  • 資料庫實時備份
  • 索引構建和實時維護(拆分異構索引、倒排索引等)
  • 業務 cache 重新整理
  • 帶業務邏輯的增量資料處理

當前的 canal 支援源端 MySQL 版本包括 5.1.x , 5.5.x , 5.6.x , 5.7.x , 8.0.x。

Canal原理

多級快取架構快取一致性實戰