开发中经常需要数据异构,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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于