redis mysql原理_Canal(redis与mysql数据一致性)

canal实现原理

1、canal server端会伪装成mysql从节点,去读取mysql主节点binlog文件,实现增量同步

2、canal server端将数据以json格式同步到客户端,MQ消费者消费消息,将数据同步到redis

2f4f0bf82abd

来源于蚂蚁课堂

环境搭建

配置Mysql服务器

1、配置MySQL的 my.cnf  开启允许基于binlog文件主从同步,在[mysqld]下添加以下配置

log-bin=mysql-bin #添加这一行就ok

binlog-format=ROW #选择row模式

server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复

配置该文件后,重启mysql服务器即可

2、添加cannl的账号 或者直接使用自己的root账号

drop user 'canal'@'%';

CREATE USER 'canal'@'%' IDENTIFIED BY'canal';

grant all privileges on *.* to 'canal'@'%'identified by 'canal';

flush privileges;

构建CanalService

1、下载canal

2、修改\conf\example下的instance.properties 配置文件内容

canal.instance.master.address=127.0.0.1:3306

canal.instance.dbUsername=root

canal.instance.dbPassword=****

3、修改example/instance.properties

canal.mq.topic=test-topic

4、修改canal.properties

# tcp, kafka, RocketMQ

canal.serverMode = kafka

canal.mq.servers = 127.0.0.1:9092

5、./startup.sh 启动canal服务器端

注意:

如果canal+kafka+mysql数据同步配置成功后,zookeeper没有自动创建主题。可以将数据库的数据做一下修改,这是因为canal是懒加载的形式创建kafka的主题的,建议可以把数据库的内容做变更下,canal就会出发创建kafka主题。

创建CanalClient

Maven依赖

org.springframework.kafka

spring-kafka

com.alibaba.otter

canal.client

1.1.0

zookeeper的环境搭建

解压

> tar -zxvf zookeeper-3.4.10.tar.gz //解压

> cd zookeeper-3.4.10/conf //切换到配置目录下

> mv zoo_sample.cfg zoo.cfg //更改默认配置文件名称

> vi zoo.cfg //编辑配置文件,自定义dataDir

启动Server

> cd zookeeper-3.4.10/bin //切换到 bin目录

> ./zkServer.sh start //启动

Cli连接

> cd zookeeper-3.4.10/bin //切换到 bin目录

> ./zkCli.sh -server 127.0.0.1:2181

centos7

同mac,注意:如果服务器上有tomcat服务,需要将8080端口释放,不然启动zookeeper会出现

Error contacting service. It is probably not running.

kafka的环境搭建

修改server.properties中的配置

log.dirs=***********

zookeeper.connect=localhost:2181

启动kafka

cd /Users/zhouhao/soft/kafka/bin

./kafka-server-start.sh ../config/server.properties

后台启动方式

./kafka-server-start.sh -daemon ../config/server.properties

查看所有topic

./kafka-topics.sh --list --zookeeper localhost:2181

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值