文档详情

canal介绍及HA集群模式搭建.pdf

发布:2022-11-06约2.48千字共7页下载文档
文本预览下载声明
canal介绍及HA集群模式搭建 快速了解canal 1.⾸先⼤概介绍⼀下canal是⼲啥的? canal是⽤来实时同步mysql数据的。对于离线任务可以通过sqoop将mysql业务库的数据导⼊hive数仓中计 算,但是想要处理实时任务就要借助canal解析binlog ⽇志来实现了。 2.canal是如何实时获取mysql数据的? canal服务伪装成mysql的从节点,接收mysql主节点的binlog ⽇志(binlog ⽇志⽂件⾥⾯记录了数据库的实时 操作) ,然后解析binlog就知道mysql做了哪些操作。 在数据实时同步⽅案中 跟mysql的binlog ⽇志类⽐的有 sqlserver同步采⽤的cdc ,(或者给表添加rowversion ,唯⼀缺点就是不能识别具体是更新还是插⼊操 作) mongodb副本集模式的oplog 通过解析这些数据库的操作凭证⽂件就可以实时同步数据,处理实时任务 开启mysql的binlog 这是使⽤canal同步mysql数据的前提,必须要开启binlog ,否则canal解析什么? 1.查看mysql是否启⽤binlog show variables like %log_bin% 显⽰bin_log的值为ON则表⽰开启,OFF则为关闭 2.开启binlog ⽇志 配置f (linux下的mysql )或者my.ini(windows下的mysql)开启binlog ⽇志,添加以下内容 log-bin=mysql-bin #添加这⼀⾏就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 3.创建canal访问账号 在MySQL中创建⼀个专门的canal访问账号,账号密码都为canal (这个可以⾃定义,只需在后⾯canal的 配置⽂件中写的即可) GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO canal@% IDENTIFIED BY canal; canal的HA集群模式部署 canal服务的部署其实特别简单,解压之后只需配置两个⽂件即可(perties ;perties) 下⾯讲⼀下具体配置流程: 先在⼀台机器上部署服务,执⾏以下1-4步 1.⾸先要下载canal 2.解压到安装⽬录 tar -zxf canal.deployer-1.1.3.tar.gz 解压出来的⽬录结构是这样的 3.修改配置⽂件perties canal.zkServers=7:2181,8:2181,9:2181 canal.instance.global.spring.xml = classpath:spring/default-instance.xml canal.destinations = example (这个example就是conf ⽬录⾥的实例,如果要建别的实例test就建个test ⽬录,把example⾥⾯的 perties⽂件拷贝到test的实例⽬录下就好了,然后在这⾥的配置就是canal.destinations example,test) 配置太长了,下⾯两张图是⼀起的 4.修改配置⽂件perties canal.instance.mysql.slaveId = 1234 ##另外⼀台机器改成1235,保证两台机器上的slaveId不重复 到此为⽌就部署好了单台canal服务,可以进⼊到bin ⽬录下启动canal服务 代码⾥⾯客户端连接的时候就可以采⽤单节点⽅式连接 CanalConnector mConnector = CanalConnectors.newSingleConnector(new InetSocketAddress(7, 11111), example, , ); HA集群模式的部署 在另外⼀台机器上再做⼀次上⾯同样的操作,只是第4步的 perties中的canal.instance.mysql.slaveId (canal伪装的mysql slave的编号,不能与mysql数据库与 其他的slave重复。)不⼀样。其余⼀模⼀样。 ⾄此HA集群模式配置好了。HA模式在启动的时候要两台机器都启动canal服务,然后由zookeeper ⾃动管 理active和standby状态。 客户端连接服务的时候就可以采⽤集群⽅式连接了 基于zookeeper动态获取canal server的地址,建⽴链接,其中⼀台server发⽣c
显示全部
相似文档