天天精选!大数据Canal(四):Canal HA原理及安装
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原理及安装
- 今日股票套利机会是什么意思(怎么理解套利机会)-聚焦
- 新疆乡村“网购一族”乐享“家门口电商” 全球快看
- 每日焦点!早期咽喉癌的5大症状_早期咽喉癌的5种症状
- 房地产开发板块震荡走强,万通发展涨超7%_视焦点讯
- 中央机关及其直属机构2023年度考试录用公务员笔试成绩和合格分数线公布
- 晓程科技3月15日快速反弹|天天实时
- 酷狗怎么下载mp4格式_酷狗怎么下载mp4_焦点报道
- 当前通讯!浙江金华,男子在活动期间,以6798元的价格购买了原价为9998元的电瓶车
- 世界热推荐:凯尔特人爆冷不敌火箭,吹杨空砍41分,独行侠惨败季后赛岌岌可危
- 当前快看:“西”望之城·“青”春活力——天津市西青区举办土地推介会
- 多喝酸奶可以减肥吗_多喝酸奶有减肥的效果吗
- 甲基丙烯酸叔丁酯商品报价动态(2023-03-14)_世界即时
- 今日播报!退休三年多,千亿级券商原董事长失联
- 遵义:深入开展“四大工程”加快创新驱动发展 前沿资讯
- 降价救得了东风吗?|全球看热讯
- 申某某等3人被行拘!禁止入园!
- 当前报道:序章
- 光环:玛瑙星的幽灵(第二十五章)
- 陈梦2-3不敌罗马尼亚老将萨马拉,无缘WTT大满贯第三轮
广告
- 爱到尽头覆水难爱悠悠恨悠悠_爱到最后 覆水难收 爱悠悠恨悠悠 为何要到无法挽留才会想起我的|天天资讯
- 主题活动设计方案中班_主题活动设计方案
- 环球微头条丨2023北京朝阳工作居住证指标申请流程(附官网入口)
- 珠海:将联合澳门等地发布标准,促进湾区消费维权一体化建设
- 全球百事通!致命性骚扰
- 纳斯达克中国金龙指数跌逾4% 全球播报
- 每日播报!开展“关注教育 关怀贫困学生”志愿活动
- 0.54秒的浪漫,中国空间站“穿月”的画面|天天日报
- 有建设银行app怎么看卡号_建设银行app怎么看卡号
- 虚拟数字人板块3月9日涨0.26%,捷成股份领涨,主力资金净流入3.06亿元-要闻速递
- 笋干是阴干还是晒干?
- 焦点精选!2020春节快递什么时候停运_春节顺丰EMS过年还上班收件吗
- 今亮点!V观财报|屏幕漏光?错失iPhone15首批订单?1500亿巨头回应
- 三角防务:严建亚累计质押股数为1022万股 焦点日报
- 一颗油橄榄见证富美小城生活,东风日产启辰双子星陪你发现快乐_当前看点
- 什么是挤塑板保温地面_什么是挤塑板_全球快看点
- 出入境团队游重启满月 不少旅游爱好者在观望
- 杨紫发微晒出自己冬日出门装,可大家的关注点都在“红色战袍”上-环球消息
- 谷建芬音乐会:杨洪基宝刀不老,孙楠毛阿敏周深单依纯唱功惊人
- 微动态丨山南敬助为什么切腹_山南敬助