大数据Canal(四):Canal HA原理及安装

2023-03-18 07:12:11 来源:腾讯云 分享到:

Canal HA原理及安装

一、​​​​​​​​​​​​​​Canal HA原理

Canal一般用于实时同步数据场景,那么对于实时场景HA显得尤为重要,Canal支持HA搭建,canal的HA分为两部分,canal server和canal client分别有对应的HA实现。大数据中使用Canal同步数据一般同步到Kafka中,这里Kafka相当于是Canal Client,Kafka集群自带HA属性,所以这里我们只关注Canal Server HA。Canal Server HA主要是为了减少对mysql dump的请求,不同server上的instance(不同server上的相同instance)要求同一时间只能有一个处于running,其他的处于standby状态(standby是instance的状态),Canal Server HA原理如下:

Canal HA 保证步骤如下:

canal server要启动某个canal instance时都先向zookeeper_进行一次尝试启动判断。创建zookeeper节点成功后,对应的canal server就启动对应的canal instance,没有创建成功的canal instance就会处于standby状态。一旦zookeeper发现canal server A创建的instance节点消失后,立即通知其他的canal server再次进行步骤1的操作,重新选出一个canal server启动instance。canal client每次进行connect时,会首先向zookeeper询问当前是谁启动了canal instance,然后和其建立链接,一旦链接不可用,会重新尝试connect。

二、​​​​​​​​​​​​​​Canal HA 搭建

1、机器准备

运行Canal的机器:node3,node4


(相关资料图)

zookeeper地址:node3:2181,node4:2181,node5:2181

mysql地址:node2:3306

2、在node3,node4上单独部署配置Canal

将Canal安装包上传到node3,node4,并解压到“/software/canal”目录下,修改“/software/canal/conf”下的canal.properties文件,加上zookeeper配置

#指定zookeeper集群地址canal.zkServers = node3:2181,node4:2181,node5:2181#配置spring的xml配置文件canal.instance.global.spring.xml = classpath:spring/default-instance.xml#canal将数据写入Kafka,可配:tcp, kafka, RocketMQ,tcp就是使用canal代码接收canal.serverMode = kafka#配置canal写入Kafka地址canal.mq.servers = node1:9092,node2:9092,node3:9092

进入“/software/canal/conf/example”目录,修改“instance.properties”文件:

#另外一台机器改成123457,保证slaveId不重复即可canal.instance.mysql.slaveId=123456#配置mysql master 节点及端口canal.instance.master.address=node2:3306#配置连接mysql的用户名和密码,就是前面复制权限的用户名和密码canal.instance.dbUsername=canalcanal.instance.dbPassword=canal#配置Canal将数据导入到Kafka topiccanal.mq.topic=canal_topic

注意:两台机器上的instance目录的名字需要保证完全一致,HA模式是依赖于instance name进行管理,同时必须都选择default-instance.xml配置,此配置中才有关于zookeeper的设置信息。

3、启动两台机器的Canal

#在node3上启动Canal[root@node3 ~]# cd /software/canal/bin[root@node3 bin]# ./startup.sh#在node4上启动Canal[root@node4 ~]# cd /software/canal/bin[root@node4 bin]# ./startup.sh

启动完成后,可以查看zookeeper中对应的路径信息:

三、Canal HA 测试

默认搭建好的Canal HA 后可以通过查看Zookeeper中的“/otter/canal/destinations/examples/running”来查看Active的Canal节点:

测试Canal HA 如下:

1、向Mysql中“testdb.person”表中写入数据

mysql> insert into person values (4,"s1",21),(5,"s2",22),(6,"s3",23);

可以观察到Kafka canal_topic中有监控到的数据如下:

{"data":[{"id":"4","name":"s1","age":"21"},{"id":"5","name":"s2","age":"22"},{"id":"6","name":"s3","age":"23"}],"database":"testdb","es":1618849974000,"id":2,"isDdl":false,"mysqlType":{"id":"int","name":"varchar(255)","age":"int"},"old":null,"pkNames":null,"sql":"","sqlType":{"id":4,"name":12,"age":4},"table":"person","ts":1618849975203,"type":"INSERT"}

2、关闭active Canal Server节点,继续向Mysql表中写入数据

关闭node3 Canal Server:

[root@node3 ~]# cd /software/canal/bin[root@node3 bin]# ./stop.sh

查看zookeeper “/otter/canal/destinations/examples/running”路径Active的Canal节点:

继续向MySQL中“testdb.person”表中写入数据:

mysql> insert into person values (7,"x1",24),(8,"x2",25),(9,"x3",26);

可以观察写入到Kafka “canal_topic”中数据如下:

{"data":[{"id":"7","name":"x1","age":"24"},{"id":"8","name":"x2","age":"25"},{"id":"9","name":"x3","age":"26"}],"database":"testdb","es":1618850233000,"id":2,"isDdl":false,"mysqlType":{"id":"int","name":"varchar(255)","age":"int"},"old":null,"pkNames":null,"sql":"","sqlType":{"id":4,"name":12,"age":4},"table":"person","ts":1618850234136,"type":"INSERT"}

经过以上测试,Canal HA 生效。

注意:经过测试Canal HA 在使用zookeeper存储binlog position时,当有一个Canal Server重新启动并切换成Active节点时,每次都会重复读取最后一条数据。使用非HA 本地存储binlog position时,没有此问题。

标签:

大数据Canal(四):Canal HA原理及安装

来源:腾讯云 2023-03-18 07:12:11

即时焦点:word2003顶端有一条横线怎样删除_word顶端横线怎么去掉

来源:互联网 2023-03-18 03:03:23

全球观热点:漫灭的近义词和思潮的近义词_漫灭的近义词

来源:互联网 2023-03-17 22:58:46

最近!上海地铁11号线这些车站早高峰限流!关于地铁限流,你了解多少?|环球速读

来源:上海交通 2023-03-17 17:15:36

焦点日报:港股异动|中兴通讯涨超9%创一年新高文心一言的算力支撑

来源:和讯马金露 2023-03-17 15:11:18

股价暴跌,创年内新低!长春高新回应:公司生产、经营没问题

来源:南方都市报 2023-03-17 13:14:55

山东黄河水环境及河道测验_天天聚看点

来源:互联网 2023-03-17 11:03:52

环球速读:产量逐年收缩态势,磷矿石紧缺将延续,看好高景气弹性标的

来源:中财网 2023-03-17 08:59:20

最小角定理公式_最小角定理是什么|热点

来源:互联网 2023-03-17 05:56:26

重生回到离婚前一天_重生回到离婚前三天

来源:互联网 2023-03-17 00:59:34

玉环在“北京飞地”正式启用

来源:了解台州府 2023-03-16 21:01:50

世界今亮点!美吉姆:第二大股东拟减持不超700万股公司股份

来源:互联网 2023-03-16 19:00:38

广州潮宏基周四(3月16日)黄金价格559元/克

来源:金投网 2023-03-16 16:41:06

环球看点!国产新车品鉴:丰田版“五菱MINI EV”C+pod发布 续航150km

来源:互联网 2023-03-16 14:41:55

部分城市楼市进入“小阳春” 全面持续回暖尚需时间|全球今日报

来源:中国经济网 2023-03-16 12:32:03

共建清朗网络空间!云南省新媒体协会带头开展“整治新媒体乱象座谈会” 世界即时看

来源:云南网 2023-03-16 10:37:35

创新联合体助力甘肃攻克“卡脖子”技术

来源:凤凰网甘肃 2023-03-16 08:55:15

每日快看:海埂大坝住宿推荐_海埂大坝

来源:科学教育网 2023-03-16 08:16:27

locklock保温杯_lock on 每日快讯

来源:科学教育网 2023-03-16 04:04:33

2 年突破 50 万台,宋 PLUS “狂飙”背后的意义何在?

来源:ZAKER汽车 2023-03-15 23:13:41

消防产品辨真伪,蓝朋友的“3·15”科普来了!-环球热议

来源:南方网 2023-03-15 20:13:06

水蚤怎么养_养水蚤方法_全球热点

来源:互联网 2023-03-15 18:06:56

今日最新疫情实时消息 新增19798例本土确诊病例,新增41例死亡

来源:互联网 2023-03-15 16:06:09

国足赢球后,扬科维奇又迎来好消息,昔日最强归化爆发,等待召唤_环球今头条

来源:申成龙美食一绝 2023-03-15 14:03:37

环球热资讯!如何把防火墙完全关闭(怎么把防火墙关了)

来源:城市网 2023-03-15 11:08:20

金海通盘中异动 股价振动6.63% 上涨7.56%_环球快看

来源:自选股智能写手 2023-03-15 09:42:02

我是103(第二篇:我叫娜凌三)

来源:哔哩哔哩 2023-03-15 07:05:16

世界焦点!组合贷款-组合贷款是什么意思

来源:互联网 2023-03-15 01:57:10

全英羽毛球锦标赛2连胜!赵俊鹏2-1爆冷骆建佑,陈雨菲2-0特鲁姆普

来源:夜谭随笔 2023-03-14 22:07:31

记者:佩德里恢复和训练情况良好,很可能国家德比首发出战

来源:直播吧 2023-03-14 18:54:48

Copyright   2015-2022 南极知识产权网 版权所有  备案号:粤ICP备2022077823号-13   联系邮箱: 317 493 128@qq.com