通过解析 mysql binlog 实现数据异构

本贴最后更新于 2425 天前,其中的信息可能已经时异事殊

开发中经常需要数据异构,mysql 数据变化需要更新 redis、memcache 或 elasticsearch 等外部存储。程序中变更数据,代码耦合度高,不易修改。我们可以利用 mysql 的 binlog 解析,统一规划数据异构的规则进行数据同步更新。

原理

同步服务模拟 mysql-slave 请求 mysql-server,接收到 binlog 中的日志数据。同步服务解析日志数据,处理对应的业务逻辑

mysql 设置

log-bin=mysql-bin #添加这一行就 ok
binlog-format=ROW #选择 row 模式
server_id=1 #配置 id

开源软件

JAVA:(Canal)https://github.com/alibaba/canal
阿里巴巴开源项目

PHP:(php-binlog)https://github.com/bullsoft/php-binlog
PHP 通过 cli 方式运行,读取 binlog

Golang:(go-mysql-elasticsearch) http://github.com/siddontang/go-mysql-elasticsearch
golang 读取 mysql binlog 同步到 es

  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    691 引用 • 535 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...