canal环境部署

news2024/11/15 21:40:33

docker 部署canal同步数据

1 环境:

在这里插入图片描述
2 Mysql 配置

  1. 查看 binlog 是否启用 SHOW VARIABLES LIKE ‘%log_bin%’;
  2. 在这里插入图片描述
    开启 binlog,
    修改 my.cnf
    docker cp mysql:/etc/my.cnf /data/mysql/conf 拷贝文件到临时目录修改后再拷贝回去
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
## 开启二进制日志功能
log-bin=mall-mysql-bin
server-id=1
## 设置二进制日志使用内存大小
binlog_cache_size=1M

## 设置使用的二进制日志格式
binlog_format=row

## 二进制日志过期清理时间,默认值未0,表示不自动清理
expire_logs_days=7

## 跳过主从复制中遇到的所有错误或者置顶类型的错误,避免slave端复制中断
## 1062 主键重复、1032主从数据不一致
slave_skip_errors=1062

#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

问题:
在这里插入图片描述
解决:
设置bin log日志的时候,没有设置server_id参数,配置文件增加
server-id=1 ,重启服务.

3 创建订阅 binlog 账号

创建账户:create user canal IDENTIFIED by ‘canal’;
授权账户:grant select,replication slave, replication client on . to ‘canal’@‘%’;
刷新权限:flush PRIVILEGES;
查询账户;select host, user, authentication_string, plugin from user;
更新密码: ALTER USER ‘canal’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘canal’;

4 Canal 配置

4.1 canal.deployer 对 conf/instance.properties 进行修改,配置你的数据库地址、账号信息
在这里插入图片描述
4.2 canal.adapter
4.2.1 application.yml 服务信息配置、es7 文件夹下同步表配置
在这里插入图片描述
4.2.2 配置数据库信息
dataSourceKey: lottery_01 是对应的读取库信息,_index: lottery.user_take_activity 是索引。

dataSourceKey: lottery_01
destination: example
groupId: g1
esMapping:
  _index: lottery.user_take_activity
  _id: _id
  sql: "select t.uuid as _id,
               t.u_id as _u_id,
               t.take_id as _take_id,
               t.activity_id as _activity_id,
               t.activity_name as _activity_name,
               t.take_date as _take_date,
               t.take_count as _take_count,
               t.strategy_id as _strategy_id,
               t.state as _state,
               t.uuid as _uuid,
               t.create_time as _create_time,
               t.update_time as _update_time
        from user_take_activity t"
  etlCondition: "where t.update_time>={}"
  commitBatch: 3000

#  PUT lottery.user_take_activity
#  {
#    "mappings": {
#      "properties": {
#        "_u_id":{"type": "text"},
#        "_take_id":{"type": "text"},
#        "_activity_id":{"type": "long"},
#        "_activity_name":{"type": "text"},
#        "_take_date":{"type": "date"},
#        "_take_count":{"type": "long"},
#        "_strategy_id":{"type": "long"},
#        "_state":{"type": "long"},
#        "_uuid":{"type": "text"},
#        "_create_time":{"type": "date"},
#        "_update_time":{"type": "date"},
#      }
#    }
#  }

#{
#  "mappings":{
#    "_doc":{
#      "properties":{
#        "id": {
#          "type": "long"
#        },
#        "name": {
#          "type": "text"
#        },
#        "email": {
#          "type": "text"
#        },
#        "order_id": {
#          "type": "long"
#        },
#        "order_serial": {
#          "type": "text"
#        },
#        "order_time": {
#          "type": "date"
#        },
#        "customer_order":{
#          "type":"join",
#          "relations":{
#            "customer":"order"
#          }
#        }
#      }
#    }
#  }
#}

在这里插入图片描述

4.3 Kinaba 添加索引
每需要同步一个表,就需要在 Kinaba 创建索引映射

PUT lottery.user_take_activity
{
  "mappings": {
    "properties": {
      "_u_id":{"type": "text"},
      "_take_id":{"type": "text"},
      "_activity_id":{"type": "long"},
      "_activity_name":{"type": "text"},
      "_take_date":{"type": "date"},
      "_take_count":{"type": "long"},
      "_strategy_id":{"type": "long"},
      "_state":{"type": "long"},
      "_uuid":{"type": "text"},
      "_create_time":{"type": "date"},
      "_update_time":{"type": "date"}
    }
  }
}

五 启动服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1315687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SSM框架的安全教育平台论文

基于SSM框架的安全教育平台 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了安全教育平台的开发全过程。通过分析安全教育平台管理的不足,创建了一个计算机管理安全教育平台的方案。文章介绍了安全…

代码上传的gitee平台

1.首先我们访问工作台 - Gitee.com进行注册和登录 2.我们创建一个仓库: 3.在本地创建我们的项目 在这文件夹里面我们打开git bush,执行 一下操作: git init :初始化仓库 git status:检查状态 git add . :将当前文件…

如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器

如何使用MySQL Workbench将样本数据库导入到MySQL数据库服务器 摘要:在本教程中,您将学习如何使用MySQL Workbench将MySQL样本数据库加载到MySQL数据库服务器。之后,您将有classicmodels示例数据库以方便练习和学习MySQL。 步骤1. 下载class…

Tomcat性能优化

Tomcat是一款常用的Java Web应用服务器,对其进行性能优化可以提高Web应用的响应速度和吞吐量。Tomcat性能取决于内存的大小。 增加JVM内存:在Tomcat的bin目录下的catalina.sh文件中修改JAVA_OPTS参数,将堆内存大小-Xmx和-Xms调整为适当的值。…

Win11如何找到电脑中的NVIDIA控制面板

目录 桌面任意地方右击,选择

Python生成器(Generator)(继续更新...)

学习网页: Welcome to Python.orghttps://www.python.org/https://www.python.org/ Python生成器 生成器(Generator)是 Python 的一种特殊类型的迭代器。生成器允许你创建自己的数据流,每次从数据流中获取一个元素,…

【已解决-实操篇】SaTokenException: 非Web上下文无法获取Request问题解决-实操篇

在上一篇《【理论篇】SaTokenException: 非Web上下文无法获取Request问题解决 -理论篇》中,凯哥(公众号:凯哥Java)介绍了了产生这个问题的源码在哪里,以及怎么解决的方案。没有给出实际操作步骤。 本文,凯哥就通过threadLocal方案…

SQL错题集3

1.薪水第二多的员工的emp_no以及其对应的薪水salary limit a,b 其中a表示查询数据的起始位置,b表示返回的数量。 (MySQL数据库中的记录是从0开始的) 注意从0开始 2.员工编号emp_no为10001其自入职以来的薪水salary涨幅值growth 聚合函数不能…

006 Windows共享

一、共享要求 一般是局域网内使用 1、物理上处于统一局域网 同一公司的网络同一家庭的网络连接同一手机热点的主机 2、逻辑上处于同一局域网 直接可以ping对方主机(能够直接访问到) 二、共享权限 1、共享权限 一般设置为everyone完全控制 2、NTF…

使用连接池对于feign的远程调用的优化

Feign底层发起http请求时,默认使用URLConnection发起http请求,不支持连接池操作,那么为了提高Feign的性能,可以采用的手段是使用连接池代替默认的URLConnection 支持连接池的http客户端 Apache HttpClientOKHttp本示例采用的是Apa…

continue语句

continue结束本次循环,接着判断下一次是否循环,我们上实例,用代码去理解continue 我们观察这个代码,会发现代码并没有终止运行,仅仅是把符合n%3的结果忽略掉了,后面的照常进行,直到for整个循环…

持续集成交付CICD:Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布

目录 一、实验 1.蓝绿发布准备 2.Jenkins使用GitLab共享库实现基于Ansible的CD流水线部署前端应用的蓝绿发布 二、问题 1.手动构建Jenkins前端项目CI流水线报错 2.如何优化手动构建流水线选项参数 一、实验 1.蓝绿发布准备 (1)环境 表1 蓝绿发布…

python下载安装教程3.10.0,python下载安装教程3.9.7

这篇文章主要介绍了python下载安装教程3.10.0,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 前言 1、下载python 下载地址:https://www.python.org/,点…

NVIDIA A100 PCIE 40GB k8s-device-plugin install in kubernetes

文章目录 1. 目标2. 简介2.1 英伟达 A100 技术规格2.2 架构优势2.3 显卡跑分对比2.4 英伟达 A100 与 kubernetes 3. 安装 NVIDIA A100 GPU 40G 硬件4. NVIDIA R450 datacenter driver5. NVIDIA Container Toolkit6. 创建 runtimeclass5. MIG Strategies6. 配置仓库7. 下载镜像8…

千梦网创:逮住一闪而过的机会疯狂摩擦

我这个人平时想的就多,睡觉也在想事情,有时候睡觉里想的事情往往都是很纯粹的、很绝妙的,但是经常性一醒过来就忘了,再去回忆怎么也想不起来了。 灵感只在特定的环境下产生,这类环境是不可再生和模拟的。 机会只因特…

ArkTS的Watch装饰器

Watch装饰器,相当于Vue中的监听器 以及 React中使用useEffect监听变量 使用Watch装饰器,可以监听一个数据的变化,并进行后续的响应。 使用方法: Watch(‘回调函数’),写在State装饰器后(其实写在前面也行&a…

数据结构之---- 回溯算法

数据结构之---- 回溯算法 什么是回溯算法? 回溯算法是一种通过穷举来解决问题的方法,它的核心思想是从一个初始状态出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择都…

算法训练第三十九天|62. 不同路径、63. 不同路径 II

62. 不同路径: 题目链接 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有…

Slate基础使用说明

目录 Slate基础使用说明 1. 简单教程 2. 要点说明 2.1 TCommands以及TCommands基类 2.2 FUICommandInfo 2.3 FUICommandList 2.4 FUIAction 2.5 UICommand 3. 代码源码 4. 工具使用 4.1 Display Ul Extension Points 4. 参考文章 Slate基础使用说明 1.…

TCP/IP详解——HTTPS 协议

文章目录 1. HTTPS 协议1.1 HTTPS 原理1.2 HTTPS 过程1.3 从数据包角度看 HTTPS 交互过程1.4 常见的 HTTPS 数据包解码1.4.1 ClientHello 数据包1.4.2 ServerHello 数据包 1.5 思考 1. HTTPS 协议 1.1 HTTPS 原理 HTTPS概念 HTTPS 是以安全为目标的HTTP通道,并不…