Canal学习笔记(服务端)
canal服务端
canal服务端有两种运行模式,一种单机模式,一种HA运行模式(zk保证)
单机模式:同步的binlog节点信息保存在本地(/conf/{自定义分区文件夹}/),meta.dat

HA模式:同步的binlog节点信息在zk上
canal配置文件
canal配置文件分为两类,
一类是全局配置文件(/conf/canal.properties),里面定义了一些公共的全局参数,例如zk信息
一类是启动实例配置文件(/conf/{自定义分区文件夹}/instance.properties),里面定义了一些实例参数(每一个的实例参数可能都是不一样的,例如slaveId不能重复),例如数据库链接,slaveId等。
canal HA模式配置
在全局配置文件(/conf/canal.properties)中配置zk信息、自定义分区名称(需要和自定义分区文件夹保持一致)、实例全局配置,详细如下:
zk信息配置:

自定义分区名称、全局实例配置:

在实例配置数据库链接、slaveId,配置如下:

canal HA模式服务端启动过程
canal服务端在启动时首先链接zk,从zk上查找binlog同步节点信息,找到则从binlog同步节点信息开始dump binlog日志。

如果没有找到binlog同步节点信息(第一次启动)则会去配置实例配置文件中查找binlog同步节点信息,找到则从binlog同步节点信息开始dump binlog日志,配置如下:

如果实例配置文件中没有配置binlog 同步节点信息,则服务端向mysql发送show master status查询binlog的最后的位置信息,然后开始从这个位置信息 dump binlog日志。
指定binlog 节点信息 dump binlog
单机模式:修改/conf/meta.dat里面的信息即可
HA模式:修改zk上的cursor信息或者在全局配置文件中指定新的分区名称,然后在实例配置文件配置信息即可
需要配置的信息:"journalName":"mysql-bin.000007","position":407258,"serverId":42,"timestamp":1554806456000,可以只配置一个。
建议:配置开始同步的binlog 时间戳,这样最简单,缺点是服务端在启动时需要扫面mysql的binlog日志,找到指定的时间戳的binlog日志,可能比较耗费时间。
Canal学习笔记(服务端)的更多相关文章
- Canal学习笔记(客户端)
前言 最近公司用到Canal来做从MySQL到Tidb的数据同步,用到HA模式Canal,记录一下HA模式的工作原理. Canal的架构模式 Canal是利用binlog日志来做数据同步,canal伪 ...
- 学习C++服务端一:MySql与C++
mysql学习: http://www.cnblogs.com/cy163/archive/2008/10/16/1312277.html http://developer.51cto.com/art ...
- dubbo 学习笔记 -- provider端
服务端的配置文件: provider.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...
- CMDB学习之五服务端api
服务端api 对发送来的数据进行处理,并返回结果,首先要创建一个Django项目 第一步,就是写URL路由在分支中写url api 主路由 from django.conf.urls import u ...
- Android学习笔记--服务(Service)
1.服务概述 1.服务是Android四大组件之一,在使用上可以分为本地服务和远程服务,本地服务是指在不影响用户操作的情况下在后台默默的执行一个耗时操作,例如下载,音频播放等.远程服务是指可以供其他应 ...
- Consul 学习笔记-服务注册
Consul简介: Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面.这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格.Consul需要 ...
- Consul 学习笔记—服务发现
前言: 上一篇文章简单实用Consul试下服务注册,本篇继续学习Consul中的另外特性:服务发现.KV操作 :以及对上篇文章中存在的问题进行解决 问题解决 在上一篇文章中,注册服务提示检查失败. 通 ...
- angular2 学习笔记 の 移动端开发 ( 手势 )
更新 : 2018-01-31 (hammer 的坑) hammer 的 pinch 在某种情况下会自动触发 panEnd,很奇葩. 解决方法就是记入时间呗 refer : https://githu ...
- SpringBoot之oauth2.0学习之服务端配置快速上手
现在第三方登录的例子数见不鲜.其实在这种示例当中,oauth2.0是使用比较多的一种授权登录的标准.oauth2.0也是从oauth1.0升级过来的.那么关于oauth2.0相关的概念及其原理,大家可 ...
随机推荐
- 监听端口,获取webService请求报文
第一步下载我们的wsdl文件到本地 第二步建立一个测试webservice工程,把wsdl放在项目里面 第三步把测试webservice中的wsdlLocation改成localhost.....你的 ...
- 12条MySQL优化技巧
应用程序慢,原因多多,可能是网络的原因.可能是系统架构的原因,还有可能是数据库的原因. 有人会说性能调优是数据库管理员(DBA)的事,然而性能调优跟程序员们也有莫大的关系. 程序中嵌入的一行行的SQL ...
- DynamoDB
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/dynamodb.html Creating a New Table I ...
- angular 键盘事件绑定与过滤
方便的angular按钮绑定 如 <input (keyup.enter)="keyUpSearch($event)" value="按下回车键触发"&g ...
- weblogic linux环境下新建domain
1. cd /home/weblogic/Oracle/Middleware/wlserver_10.3/common/bin 2. ./config.sh -mode=console(用控制台模式安 ...
- Python之路(第三十九篇)管道、进程间数据共享Manager
一.管道 概念 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 先画一幅图帮助大家理解下管道的基本原理 现有2个 ...
- css firefox火狐浏览器下的兼容性问题
1.DOCTYPE 影响 CSS 处理 2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 3.FF: body 设置 text-al ...
- AX_SysTableBrowser
sysTableBrowser sysTableBrowser = new sysTableBrowser(); ; sysTableBrowser.setAllowEdit(true); sy ...
- vue-cli 第一章
一.安装 Node.Python.Git.Ruby 这些都不讲解了 二.安装 Vue-Cli # 最新稳定版本 # 全局安装 npm install --global vue-cli # 创 ...
- 1123. Is It a Complete AVL Tree (30)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child sub ...