Canal相关

2022-09-23 18:47:12 浏览数 (1)

canal项目位于官方主页,是阿里开源的mysql binlog操作中间件,其介绍在主页都有.

1、git下载canal 

在主页的release目录,下载对应版本的canal即可

canal.deployer-1.1.6.tar.gz是canal的运行时,相关数据库的配置都在其下面.

canal.admin-1.1.6.tar.gz是canal的集群管理web站点,cannal可以集群部署

分别下载指定版本的以上所有内容

admin

2、安装jdk

canal运行依赖jdk,下载对应版本的jdk,windows下面需要配置环境变量

新增JAVA_HOME环境变量 值为jdk地址如:E:jdk1.8.0_201jdk1.8.0_201

PATH中新增%JAVA_HOME%bin 路径

3、编写配置文件

参考官方文档Quick Start,配置如下:

canal支持集群部署,这里默认配置文件指向canal.destinations = example所以配置文件路径默认为canal.deployer-1.1.6confexample下的instance.properties文件.这里可以用逗号分割,分配多个.

代码语言:javascript复制
## mysql serverId
canal.instance.mysql.slaveId = 666(不能和集群中的节点一样)
#position info
canal.instance.master.address = 数据库地址 
canal.instance.master.journal.name = 
canal.instance.master.position = 
canal.instance.master.timestamp = 
#canal.instance.standby.address = 
#canal.instance.standby.journal.name =
#canal.instance.standby.position = 
#canal.instance.standby.timestamp = 
#username/password,需要改成自己的数据库信息
canal.instance.dbUsername = 数据库用户名
canal.instance.dbPassword = 数据库密码

4、配置canval admin 官方文档

canval admin是canval运行时集群管理web站点,用于管理所有的canal节点.

4.1 canal-template.properties 配置文件

位于conf文件夹下,主要配置解析如下:

代码语言:javascript复制
# tcp bind ip
canal.ip =
# register ip to zookeeper
canal.register.ip =
canal.port = 11111 
canal.metrics.pull.port = 11112
# canal instance user/passwd
# canal.user = canal
# canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458

# canal admin config
#canal.admin.manager = 127.0.0.1:8089   默认访问地址
canal.admin.port = 11110 端口
canal.admin.user = admin 默认访问用户名
canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 默认密码 123456
# admin auto register
#canal.admin.register.auto = true
#canal.admin.register.cluster =
#canal.admin.register.name =

4.2 canal_manager数据库构建

canal集群管理站点运行依赖数据库,所以需要新建一个管理数据库,数据库表创建语句位于canal.admin-1.1.6confcanal_manager.sql

4.3 编辑application.yml

代码语言:javascript复制
server:
  port: 8089
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT 8

spring.datasource:
  address: canal_manager数据库地址
  database: canal_manager
  username: 数据库访问用户名
  password:数据库访问密码

标黄处需要修改.

5、分别启动canal和canal-admin   启动文件位于bin文件夹下的start.bat

6、重置Canal消费position

修改confexample 下的meta.dat,如下:

代码语言:javascript复制
{
  "clientDatas": [
    {
      "clientIdentity": {
        "clientId": 666,
        "destination": "example",
        "filter": "quzhou_baseasset.dh_log"
      },
      "cursor": {
        "identity": {
          "slaveId": -1,
          "sourceAddress": {
            "address": "102.2.12.3",
            "port": 3306
          }
        },
        "postion": {
          "gtid": "",
          "included": false,
          "journalName": "binlog.000078",
          "position": 380084023,
          "serverId": 1,
          "timestamp": 1661807567000
        }
      }
    }
  ],
  "destination": "example"
}

修改position节点下的timestamp或者journalName并指定position.

0 人点赞