当前位置: 首页 >> 发展
世界热门:大数据Canal(四):Canal HA原理及安装
来源:腾讯云     时间:2023-03-15 12:22:20

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原理及安装 Canal一般用于实时同步数据场景,那么对于实时场景HA显得尤为重要,Canal支持HA搭建,canal的HA分为两部...
女生在宿舍里发现14年前学姐留的信,勾起网友“回忆杀”刷屏 近日,一位湖南网友分享出自己大学宿舍书柜上一张2009年学姐留下的明信片“致503室后辈们的一封信”。该...
每日热议!天胶 延续弱势格局 高库存压制一方面,随着渠道及终端门店订单逐步到位,渠道商对后市谨慎看空,补货意愿不强;另一方面,...
当前视讯!笔仙的故事简介_笔仙的故事 1、从书中(恐怖小说)和电影(恐怖片)了解笔在纸上套画着圆圈套画着前世今生的缘笔仙--慎用!!! ...
时空科技:2022年归母净利润为-2.1亿元,连亏两年未能扭亏 时空科技于2023年3月15日披露年报,公司2022年实现营业总收入3 3亿元,同比下降55 8%,降幅较去年同期...
深渊救元帅任务奖励哪个好(深渊救元帅任务流程) 1、温德索尔元帅(地下城)去黑石深渊找到他。2、2、找到后接到任务一丝希望找回温德索尔元帅遗失的情报。...
焦点!蕤怎么读_蕤的意思 欢迎观看本篇文章,小勉来为大家解答以上问题。蕤怎么读,蕤的意思很多人还不知道,现在让我们一起来看...
天天看点:“葡萄酒”和“红酒”有哪些区别?差别不止一点,学会别再乱买了 酒是中国最古老的饮品之一,啤酒、红酒、黄酒,共同组成了世界三大酿酒,在成年人的世界里,聚会聚餐,...
2月1日大雪带着龚家禄忠和嘉迪参观虎丘 当前大家对于二月一日大雪同孔加鲁仲公瑕嘉弟游虎丘都是颇为感兴趣的,大家都想要了解一下二月一日大雪...
焦点速递!2023北京昌平都会中心公租房基本情况介绍(配套+户型) 昌平区都会中心公共租赁住房项目基本情况介绍一、基本信息楼盘类型:公共租赁住房项目位置:北京市昌平...
今日热文:互联网最快放弃的梦想,元宇宙还有希望吗? 互联网最快放弃的梦想,元宇宙还有希望吗?
妖猫传小说豆瓣评分_妖猫传小说 1、在《妖猫传》原著小说中,待杨玉环长大,黄鹤认为寿王迟早是要当皇帝的,于是用计将杨玉环送去了寿王...
进球网:内马尔无意今夏离开巴黎,外界传闻令球员感到恼火 进球网:内马尔无意今夏离开巴黎,外界传闻令球员感到恼火,今夏,进球网,巴西人,足球竞赛,巴西足球,足球...
环球观焦点:3月13日中信保诚盛裕一年持有期混合型A净值上涨0.18% 3月13日,截至收盘,中信保诚盛裕一年持有期混合型A(011713)较前一交易日净值上涨0 18%,跑输上证指...
泰国首富家族来A股养猪,正大股份背靠正大集团关联交易频繁,产能不饱和仍募资百亿扩产 近日,正大投资股份有限公司(以下简称“正大股份”)披露了招股书,公司拟登录上海证券交易所主板。正...
做阴超能看出来怀孕了吗_做阴超能查出是否怀孕吗 1、做阴道彩超检查,可以检查患者是否怀孕,而且阴道检查比腹部检查更早检查患者是否怀孕。2、因为如果...
全球即时:惠州往来港澳通行证澳门个人旅游签证逗留几天? 可以逗留7天。申请赴澳门,可以签发3个月一次签注、1年一次签注,每次在澳门逗留不超过7天。【拓展——...
【报资讯】世嘉科技:参股企业荣旗科技首次公开发行股票申请获证监会同意注册批复 中国财富通3月13日-世嘉科技(002796)公告称,近日,公司经查询证监会网站获悉,证监会对公司参股企业荣...
每日热门:跟谁合照都“面瘫”的霍建华,林心如也不例外,唯独遇上他有笑容 说起霍建华,大家应该是非常的熟悉吧,出演过多部古装剧,口碑一直不错,而且霍建华出演的电视剧一般都...
全球速看:关爱心灵 快乐成长 市第二初级中学关爱心灵快乐成长本报讯(记者张宁通讯员张勇)近日,市第二初级中学北校区举办主题为“...
世界简讯:MMORPG 是什么 大型多人在线角色扮演游戏(MMORPG)是一款电子游戏,它发生在一个持久的状态世界(PSW)中,数千甚至数百万...
《正统三国》3.3.1版本3月13日更新 亲爱的主公,服务器将于2023 03 135:00-9:00停服进行版本更新和新赛季匹配,实际开服时间根据更新进度...
春天上班穿什么?精致温柔系穿搭示范,遇见最美的自己! 看一个女人有没有气质往往看她的穿搭就能够看出,那些精致又气质的女人不管到哪里都是一身好穿搭撑出了...
3-0后1-2,意甲冠军队变差,虚射28脚,造历史首败,米兰好机会 意甲第26轮比赛,那不勒斯2-0取胜,这意味着他们经历上一轮的失利后,又回到了正轨,积分达到68分的他们...
世界今亮点!美国联邦存款保险公司为硅谷银行员工提供45天聘期及1.5倍工资 当地时间11日,据路透社报道,美国监管机构联邦存款保险公司(FederalDepositInsuranceCorp,FDIC)为硅...

广告

X 关闭

广告

X 关闭