Navigation

    数据用户治理组

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Canal v1.1.4版本搭建HA集群

    技术文章分享
    canal 部署
    2
    2
    1826
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Alex
      Alex last edited by CloudCanal-万少

      MySQL 架构一主两从

      • 主机 192.168.1.40 MySQL-master canal-admin canal-server

      • 主机 192.168.1.41 MySQL-slave1 canal-admin canal-server

      • 主机 192.168.1.42 MySQL-slave2 nginx

      1、部署 jdk 步骤省略,自行安装

      192.168.1.40 192.168.1.41 192.168.1.42 部署好了MySQL8.x,部署省略

      在 192.168.1.40 登入MySQL 创建用户,以及授权权限。

      CREATE USER 'canal'@'192.168.%.%' IDENTIFIED WITH mysql_native_password BY 'Canal..123654';
      
      GRANT ALL PRIVILEGES ON canal_manager.* TO 'canal'@'192.168.%.%';
      

      192.168.1.40 主机操作

      部署配置canal-admin

      mkdir /usr/local/admin
       
      cd /usr/local/src
       
      wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz
       
      tar xf canal.admin-1.1.4.tar.gz -C ../admin/
       
      cd ../admin/
       
      vim conf/application.yml
       
      server:
       
      port: 8089
       
      spring:
       
      jackson:
       
      date-format: yyyy-MM-dd HH:mm:ss
       
      time-zone: GMT+8
       
        
      spring.datasource:
       
      address: 192.168.1.40:3308 #修改数据库地址
       
      database: canal_manager #数据库默认即可
       
      username: canal #数据库账号
       
      password: Canal..123654 #数据库密码
       
      driver-class-name: com.mysql.jdbc.Driver
       
      url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
       
      hikari:
       
      maximum-pool-size: 30
       
      minimum-idle: 1
       
        
      canal:
       
      adminUser: admin
       
      adminPasswd: admin
      

      初始化数据库

      登录数据库把/usr/local/admin/conf/canal_manager.sql 这个SQL文件导入

      source /usr/local/admin/conf/canal_manager.sql
      

      启动服务

      bash bin/startup.sh

      注意: 因为用的MySQL8.x,canal-admin默认解压出来的驱动是MySQL5.x,所以启动时候会报错,解决办法就是去MySQL官网下载对应版本的驱动替换进去。

      192.168.1.41 主机操作

      把 192.168.1.40 的 admin 打包,拷贝过来,直接启动

      部署 nginx

      192.168.1.42 主机操作

      yum install nginx

      cat /etc/nginx/conf.d/canal.conf
       
      upstream canal_backend {
       
          server 192.168.1.40:8089;
       
          server 192.168.1.41:8089;
       
      }
       
      server {
       
          listen 80;
       
          server_name localhost;
       
        
      location / {
       
         proxy_next_upstream error timeout http_503 http_504 http_502; #如果请求当前节点触发了这里指定的条件就将请求转发到下一个机器
       
         proxy_connect_timeout 500s;
       
         proxy_read_timeout 500s;
       
         proxy_send_timeout 500s;
       
         proxy_set_header Host $http_host;
       
         proxy_set_header X-Real-IP $remote_addr;
       
         proxy_set_header X-Forwarded-For $remote_addr;
       
         proxy_pass http://canal_backend;
        }
      }
      

      systemctl start nginx && systemctl enable nginx
      

      访问 nginx

      192.168.1.42

      账号 admin 密码 123456

      登录canal-admin,新建集群,定义集群名称,zk集群地址

      8e4955c4-5bfa-4696-9792-fa10a5c5a031-image.png

      添加报错

      explicit_defaults_for_timestamp 改成0就好了
      
      (root@localhost) [(none)]> set explicit_defaults_for_timestamp=OFF;
      
      (root@localhost) [(none)]> show variables like "%timestamp%";
      

      重启两台 canal-admin 的服务。

      fd66e65d-e01e-49a6-9543-451f960c3947-image.png

      9119e829-8196-4226-8f6d-b0dac3ce6602-image.png

      d8ec115b-e0e7-4ab0-9d2f-46a378c3b19d-image.png

      部署配置canal-server

      mkdir /usr/local/deployer
       
        
      cd /usr/local/src/
       
        
      wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz
       
        
       
      tar xf canal.deployer-1.1.4.tar.gz -C ../deployer
      

      修改配置文件

      使用 canal_local.properties 的配置文件覆盖 canal.properties,并编辑 canal.properties

      38e827ad-a0e4-4eaf-a968-c1d8bfcff97f-image.png

      启动canal服务

      bash bin/startup.sh local
      

      验证canal-server服务是否正常

      登录canal-admin,在Server管理页面查看状态是否正常,如果不正常,可以在线查看日志

      tailf logs/canal/canal.log
      

      第二台canal服务的部署流程和上面一样,只是修改配置文件的时候注意下,canal.register.ip改成本机IP,canal.admin.register.cluster,其他都一样。然后启动服务。

      1 Reply Last reply Reply Quote 1
      • CloudCanal-万少
        CloudCanal-万少 last edited by

        @Alex 感谢楼主的分享,期待更多canal好文

        1 Reply Last reply Reply Quote 0
        • 1 / 1
        • First post
          Last post
        Copyright © 2020 ClouGence, Inc.备案号:浙ICP备20007605号-2