我们使用Mysql的bin-log实现数据库与外部缓存的同步
这里使用阿里的canal中间件
相应的cannal客户端也是canal
canal地址https://github.com/alibaba/canal/
文档相关https://github.com/alibaba/canal/wiki/QuickStart
maven依赖:
需要排除掉spring-2.5.6
<dependency>
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId>canal.client</artifactId>
<version>1.0.22</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
</exclusion>
</exclusions>
</dependency>
</dependency>
canal 在服务器下载安装好后
首先开启 mysql 的 binlog
[mysqld]
log-bin=mysql-bin # 添加这一行就 ok
binlog-format=ROW # 选择 row 模式
server_id=1 # 配置 mysql replaction 需要定义,不能和 canal 的 slaveId 重复
给予 canal slave 权限
CREATE USER canal IDENTIFIED BY 'canal';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal' WITH GRANT OPTION;
FLUSH PRIVILEGES;
修改 canal 配置
vi conf/example/instance.properties
################################################
## mysql serverId
canal.instance.mysql.slaveId = 1234
# position info
canal.instance.master.address = 127.0.0.1:3306#你的数据库地址
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
# username/password
canal.instance.dbUsername = canal
canal.instance.dbPassword = canal
canal.instance.defaultDatabaseName = skyeye
canal.instance.connectionCharset = UTF-8
canal.instance.global.lazy = true ## 修改为 false,代表立马启动
# table regex
canal.instance.filter.regex = .*\\..*
# table black regex
canal.instance.filter.black.regex =
#################################################
canal.instance.connectionCharset 代表数据库的编码方式对应到 java 中的编码类型,比如 UTF-8,GBK , ISO-8859-1
修改完了之后
进入 bin 目录
cd bin
启动
./startup.sh
停止
./stop.sh
在 logs 目录中查看日志
vim canal/log/canal/canal.log
暂时写到 这里
参考:
http://blog.youkuaiyun.com/hackerwin7/article/details/37923607
http://liyonghui160com.iteye.com/blog/2176066
http://blog.youkuaiyun.com/a925907195/article/details/46277557