1. 准备一台 linux 服务器(以 CentOs 为例)

2. 安装 golang 运行环境

- https://golang.google.cn/dl/ 下载 go1.11.4linux-amx64.tar.gz

- 将下载的二进制包解压至 /usr/local目录

tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz

- 将 /usr/local/go/bin 目录添加至PATH环境变量:

export PATH=$PATH:/usr/local/go/bin

注:其他环境,详见 http://www.runoob.com/go/go-environment.html

==========================================》 至此,恭喜,你总算有了go的运行环境

依赖组件

mkdir -p ~/go/src/github.com/

1) 阿里Canal 服务端部署

0. Master 数据库配置

- binlog 文件格式修改程row模式

- 因为 canal 的原理是将自己伪装成 mysql slave,所以需要需要创建一个slave用户并做相应的配置

(slaveId不能与master数据库现有slave的id重复)

CREATE USER canal IDENTIFIED BY 'canal';

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';

FLUSH PRIVILEGES;

针对已有的账户可通过grants查询权限:

show grants for 'canal'

1.下载canal安装包:

2. 将压缩包 canal.deployer-1.1.2.tar.gz 解压至自己用户目录下

tar -zxvf canal.deployer-1.1.2.tar.gz

3. 修改默认实例的配置文件:  vim conf/example/instance.properties

4. 按需修改 公共配置文件:vim conf/canal.properties

现象证明,此处 canal.destinations 不配置可行,只要配置了 canal.auto.scan 之后,canal 会自动扫描识别  conf/ 目录下的实例。

5. 启动 canal 服务端 监听数据库对应的表的binlog事件

cd ~/canal.deployer-1.1.2/bin

执行./startup.sh(日志可以在 log 目录下的日志文件查看)

===============================================>  至此,canal服务成功启动。

2) 阿里Canal-go客户端部署

客户端 准备工作

1. protobuf 环境准备

1-1 https://github.com/golang/protobuf 下载 golang protobuf,将下载的文件解压后,并重新命名为 "protobuf"

1-2 cd $GOROOT

1-3 mkdir -p ./github.com/golang

1-4 将 protobuf 目录移到 $GOROOT/github.com/golang 下

2. CanalClient canal-go 工程环境搭建

2-1 cd $GOROOT

2-2 mkdir -p ./github.com/CanalClient

2-3 cd ./github.com/CanalClient

2-4 下载 canal-go (两种方法)

1)从 https://github.com/CanalClient/canal-go 下载 canal-go-master.zip,解压并重命名 canal-go,

将 canal-go 目录放到 $GOROOT/github.com/CanalClient 下

2)cd $GOROOT/github.com/CanalClient ,直接通过 git clone 命令拉取

git clone https://github.com/CanalClient/canal-go.git

有人可能会问,"为什么要指定这么发杂的目录",请看下 canal-go 目录中 samples/main.go 中引用的相对路径就是这样,所以 。。

(当然,你也可以修改)

==========================================》

canal golang环境的客户端已部署完毕,下面可以愉快地运行 /samples/main.go 了

- mkdir -p ~/canal_client

- mv main.go ~/canal_client

- 通过 go build 编译 main.go ,会生成一个 二进制可运行文件 canal_client

- 运行 ./canal_client

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐