利用阿里开源项目 canal ,基于数据库增量日志解析,提供增量数据订阅&消费,相对来说主要分为三步:
1.canal 模拟 mysql slave 的交互协议,伪装自己为 mysql slave ,向 mysql master 发送 dump 协议,
2.mysql master 收到 dump 请求,开始推送 binary log给 slave (也就是 canal),
3.canal 解析 binary log 对象,将解析的数据以 AVRO 格式发送至 kafka 。配套使用 Prometheus+alertmanager+grafana +告警平台对 整个 canal 进行全面的健康状态监控。将 canal 镜像化以方便后续的部署与管理维护,为了保证生产数据库的安全性,canal 所有使 用到的密码,均对其进行了加密,以密文的形式保存在配置文件当中。