首页 > 要闻 >

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

2023-03-18 03:10:15 来源:腾讯云

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时,没有此问题。

上一篇:

下一篇:

x
推荐阅读

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

绿山墙的安妮人物_绿山墙的安妮人物介绍-资讯推荐

环球观热点:关于Ultra Miami 2023你可能不知道的7件事!

美克家居为控股股东美克集团两项合计1.6亿元贷款业务提供担保_快资讯

天天热点评!一哥还是他!国足主力阵容凸显雏形 武磊位置不可动摇

全球讯息:什么什么的那一刻作文600字初中(什么什么的那一刻作文600字)

6西格玛管理法_6西格玛管理

张迎春:让科技创新能力变成粮食单产生产力

莱登担任北京首钢男篮代理主教练

糖尿病人可以吃干枣吗_糖尿病人吃什么水果好

大衣下面别总配裤子,今年更流行这样搭,40岁女人穿减龄又洋气_世界速递

IPO估值 | 派瑞特气:主力产品继续扩产,或将面临更激烈的竞争 全球头条

快看:11棵石榴树落植杭州民族团结林 各民族群众喜迎亚运

【应渊颜淡】归位日常66:错位时空

天天观天下!赛巴斯蒂安图片_赛巴斯蒂安

世界热门:UB+dB1Doublebass让您欣赏音乐的球形蓝牙扬声器

国家发展改革委价格成本调查中心与上海钢联签署农产品成本调查技术合作协议

中国联通统一邮箱登陆_中国联通邮箱登陆 当前快讯

激进加息冲击金融体系 美联储未来或受牵制 报资讯

观天下!淄博红盾信息网官网首页_淄博红盾信息网官网

夸人好看的成语有哪些_夸人好看的成语_热点评

分位数函数-分位数 世界报资讯

国联证券股东国联发展集团以91.05亿元拿下民生证券34.71亿股股权

天天速讯:这辆迈凯轮塞纳有一个售价7000美元的水瓶选项

荆州警方成功打掉一电信诈骗团伙!22人被抓! 关注

环球精选!20年后的家乡作文500字左右_二十年后的家乡优秀作文

全球新消息丨蓝宝破壁机怎么打生豆浆?

【世界快播报】大学生当群演引热议,现场副导演:上万学生参与,抢着演日军因道具多

京东2022年财报背后的隐秘:亮眼成绩中亦有隐忧

复制到sd卡根目录下没反应(复制到sd卡根目录下)

今日精选:辉煌科技(002296)3月14日主力资金净买入665.07万元

全球报道:舌下腺囊肿会癌变吗_舌下腺囊肿会癌变吗

环球视点!广东省消委会发布分析报告称:去年为消费者挽损超2.6亿元

药易购:连续6日融资净偿还累计923.55万元(03-13)

环球最资讯丨小小竹排江中游原唱刀郎_小小竹排江中游原唱

焦点讯息:乐园魔城安卓下载(乐园魔城)

环球视讯!海螺能蒸着吃吗?

游客吐槽25元看海洋馆就几个鱼缸,整个海洋馆如同客厅

这个病毒的阳性率,28天翻了近60倍!

焦点要闻:趁虚而入的意思的近义词

镶黄旗气象台发布大风蓝色预警【IV级/一般】【2023-03-13】|全球速看料

二审法院立案后会给通知吗

前沿热点:江苏二级建造师注册查询入口(江苏二级建造师注册查询)

英国20%大学生因生活成本高企考虑辍学|环球播资讯

英国工程技术学会_关于英国工程技术学会的简介-当前短讯

世界观焦点:原来,你和我之间有缘... 13【原神/校园风/心海】

电脑绘画作品教程大全_电脑绘画作品教程-当前消息

春秋晚期城址_对于春秋晚期城址简单介绍-世界热门

“三抓三促”行动进行时|“巾帼工作室+法官” 合力高效化纠纷 环球消息

张艺兴网传女朋友李琪琪资料_张艺兴女友李琪琪微博