canal的安装部署

https://github.com/alibaba/canal

第一步:首先开启mysql数据库的binglog权限,怎么开呢,找到my.cnf,里面加入下面的语句

[mysqld]
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

创建一个用户名和密码,确保是最大权限就行,后面用于配置文件中 填写用户名和密码,监控用的。

第二步:在服务器上下载canal-deploy 包

下载什么版本自己选择

wget https://github.com/alibaba/canal/releases/download/canal-1.0.17/canal.deployer-1.0.17.tar.gz

解压后,配置2个文件

canal.properties  : 这个文件定义全局性质,全局配置

里面需要修改如下内容

# tcp, kafka, RocketMQ   定义数据输出sink方式,此处我们选择kafka
canal.serverMode = kafka

##################################################
#########                    MQ                      #############
##################################################
canal.mq.servers= 127.0.0.1:9092        //此处是kafka的地址

instance.properties                                  单个数据源的配置

canal.instance.mysql.slaveId=12345     不要写1就行,多个的化不要重复,随便写

# position info
canal.instance.master.address=127.0.0.1:3306    要监控的实例IP地址和端口

# username/password                                            要监控实例的用户名和密码
canal.instance.dbUsername=root
canal.instance.dbPassword=123456

# table regex   选填:默认是这个实例下所有的库和所有的表,也可以根据需要进行白名单和黑名单,这样就能分很多哦topic出来。
canal.instance.filter.regex=.*\\..*
# table black regex
canal.instance.filter.black.regex=

# mq config                                                                此处定义的mq也就是上面定义的kafka或者其他mq的topic名称
canal.mq.topic=example

第三步:启动kafka

测试的时候,自己先在服务器下载一个kafka,启动里面的zookeeper和kafka,然后打开一个消费者观察就行

消费者开启:bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic example --from-beginning

kafka正常启动后,启动canal  bin/start-up.sh

然后在canal的logs目录下查看instance.properties中定义的topic名称的文件夹,也就是example,打开看里面的日志有没有报错。

第四步:测试

尝试修改127.0.0.1 实例下的mysql表数据或者库,在kafka消费者里面看内容。

内容1:增加

{"data":[{"id":"10"}],"database":"test_canal","es":1576932184000,"id":1,"isDdl":false,"mysqlType":{"id":"int(11)"},"old":null,"pkNames":["id"],"sql":"","sqlType":{"id":4},"table":"testuser","ts":1577200831211,"type":"INSERT"}

内容2:删除

{"data":[{"id":"1"}],"database":"test_canal","es":1577200931000,"id":3,"isDdl":false,"mysqlType":{"id":"int(11)"},"old":null,"pkNames":["id"],"sql":"","sqlType":{"id":4},"table":"testuser","ts":1577200931733,"type":"DELETE"}

内容3:修改

{"data":[{"id":"13"}],"database":"test_canal","es":1577201023000,"id":4,"isDdl":false,"mysqlType":{"id":"int(11)"},"old":[{"id":"11"}],"pkNames":["id"],"sql":"","sqlType":{"id":4},"table":"testuser","ts":1577201023478,"type":"UPDATE"}

内容4:ddl

{"data":null,"database":"test_canal","es":1577201122000,"id":6,"isDdl":true,"mysqlType":null,"old":null,"pkNames":null,"sql":"ALTER TABLE `testuser`\r\nMODIFY COLUMN `name`  double(255,0) NULL DEFAULT NULL AFTER `id`","sqlType":null,"table":"testuser","ts":1577201122644,"type":"ALTER"}

以上的步骤就都能监控到了

当然还可以配置管理页面的,同样是下载jar包从canal官网

然后,按照上面把配置文件交给管理页面管理就行,其他的基本都一样,就不演示了。

很开心,因为周六尝试的时候总是报错,晚上又尝试了一下正常了,周六是因为配置文件配的kafkaIP有问题,另外就是一个坑

不能用服务器自带的mysql,最好自己下载一个mysql,按照上面的步骤来。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值