canal番外篇-otter

news2024/11/23 9:44:43

前置知识点

  • 主从复制
  • binlog
  • canal
  • 正则
  • docker
  • java

前置工具

  • docker
  • otter-all

场景描述(增量同步)

目前项目中使用的是mysql5.5,计划升级为mysql8.1,版本跨度较大,市面上可靠工具选择较少。otter符合预期,使用过程中除GitHub issues中提到的问题外(上述otter-all中已经修复),未发现其他异常。目前同步一切正常。
存量同步直接mysqldump。然后记录binlog位置(canal配置中用到)

安装otter

  1. docker pull zhangkaifunny/otter-all
  2. mkdir otter && cd otter && touch run.sh
    输入如下信息:
#!/bin/bash

function usage() {
    echo "Usage:"
    echo "  run.sh [CONFIG]"
    echo "example:"
    echo "  run.sh NODE -e OTTER_MANAGER=127.0.0.1:8080"
    exit
}

function check_port() {
    local port=$1
    local TL=$(which telnet)
    if [ -f $TL ]; then
        data=`echo quit | telnet 127.0.0.1 $port| grep -ic connected`
        echo $data
        return
    fi

    local NC=$(which nc)
    if [ -f $NC ]; then
        data=`nc -z -w 1 127.0.0.1 $port | grep -ic succeeded`
        echo $data
        return
    fi
    echo "0"
    return
}

function getMyIp() {
    case "`uname`" in
        Darwin)
         myip=`echo "show State:/Network/Global/IPv4" | scutil | grep PrimaryInterface | awk '{print $3}' | xargs ifconfig | grep inet | grep -v inet6 | awk '{print $2}'`
         ;;
        *)
         myip=`ip route get 1 | awk '{print $NF;exit}'`
         ;;
  esac
  echo $myip
}

NET_MODE=""
case "`uname`" in
    Darwin)
        bin_abs_path=`cd $(dirname $0); pwd`
        ;;
    Linux)
        bin_abs_path=$(readlink -f $(dirname $0))
        NET_MODE="--net=host"
        ;;
    *)
        NET_MODE="--net=host"
        bin_abs_path=`cd $(dirname $0); pwd`
        ;;
esac
BASE=${bin_abs_path}
if [ "$1" == "-h" ] ; then
    usage
elif [ "$1" == "help" ] ; then
    usage
fi

DATA="$BASE/data"
mkdir -p $DATA
RUN_MODE=$1
CONFIG=${@:2}
VOLUMNS="-v $DATA/mysql:/var/lib/mysql -v $DATA/zkData:/home/admin/zkData -v $DATA/logs:/home/admin/manager/logs"
PORTLIST="8080 8081 2181 2088 2089 2090"

PORTS=""
for PORT in $PORTLIST ; do
    #exist=`check_port $PORT`
    exist="0"
    if [ "$exist" == "0" ]; then
        PORTS="$PORTS -p $PORT:$PORT"
    else
        echo "port $PORT is used , pls check"
        exit 1
    fi
done
MEMORY="-m 4096m"
LOCALHOST=`getMyIp`
cmd="docker run -d -it -h $LOCALHOST $CONFIG --name=otter-all $VOLUMNS $NET_MODE $PORTS $MEMORY zhangkaifunny/otter-all:v1"
echo $cmd
eval $cmd
  1. sh run.sh

成功启动后,会出现http://xxx:8080,直接访问,然后点击退出,使用admin\admin登录。

具体操作

  1. 配置数据源
    在这里插入图片描述在这里插入图片描述

  2. 配置数据表(用到正则)
    在这里插入图片描述
    在这里插入图片描述

  3. 配置canal(用到主从复制、binlog 相关知识)

  4. 机器配置(略),使用默认

  5. 同步管理

    • channel管理

    • pipeline管理

    • 映射关系管理

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

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

相关文章

3Ds max入门教程:为男性角色创建服装T 恤

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 3ds Max 角色服装教程 在本 3ds Max 教程中,我们将为角色模型创建一个简单的 T 恤。我们提供了一个“human_figure.obj”文件供您导入模型。因此,本教程将重点介绍的是创建服装&…

【VTK】VTK 显示小球例子,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 关于更多此例子的资料,可以参考:【Visual Studio】在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK。 文章目录 版本环境VTKTest.…

【机器人模拟-01】使用URDF在中创建模拟移动机器人

一、说明 在本教程中,我将向您展示如何使用通用机器人描述格式 (URDF)(机器人建模的标准 ROS 格式)创建模拟移动机器人。 机器人专家喜欢在构建机器人之前对其进行模拟,以测试不同的算法。您可以想象,使用物理机器人犯错的成本可能很高(例如,将移动机器人高速…

SPSS方差分析

参考文章 导入准备好的数据 选择分析方法 选择参数 选择对比,把组别放入因子框中,把红细胞增加数放进因变量列表 勾选“多项式”,等级取默认“线性” ,继续 接着点击“事后比较”,弹出对话框,勾选“LSD” …

华为OD机试真题 JavaScript 实现【分糖果】【2022Q2 200分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、JavaScript算法源码六、效果展示 专栏导读 本专栏收录于《华为OD机试(JavaScript)真题(A卷B卷)》。 刷的越多,抽中的概率越大,每一题都…

Windows Bat实现延时功能的几种常见方式

文章目录 1. 使用ping命令实现延时2. 使用timeout命令实现延时3. 使用choice命令实现延时4. 使用for循环实现延时5. 使用sleep命令实现延时6. 使用VBScript.sleep实现延时总结 在 bat批处理中实现延时功能的几种常用方式 1. 使用ping命令实现延时 使用ping命令可以实现延时的…

mysql备份,视图

一、备份与还原 1.设计样例表 CREATE DATABASE booksDB; use booksDB; --创建表book2 CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL); --创建表authors CREATE TABLE authors(auth_id INT NOT NULL PRIM…

java学习路程之篇六、知识点、算数运算符、自增自减运算符、类型转换

文章目录 1、算术运算符2、自增自减运算符3、类型转换 1、算术运算符 2、自增自减运算符 3、类型转换

Serverless是什么?如何使用?有哪些优势?国内外有哪些Serverless平台?

111. Serverless是什么?如何使用?有哪些优势?国内外有哪些Serverless平台? 一、 Serverless是什么? 百度百科 Serverless 是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器…

【沐风老师】3DMAX灯光放置插件LightPlacer使用方法教程

3DMAX灯光放置插件LightPlacer使用方法 3DMAX灯光放置插件LightPlacer,用于3dMax放置和管理灯光的插件,可以在3dMax中一键制作所需的灯光,且通过插件创建出来的灯光属性可以在该面板下进行直接修改,并不需要切换至堆栈。该插件的有…

接口自动化测试实践指导(下):接口自动化测试断言设置思路

1 断言设置思路 这里总结了我在项目中常用的5种断言方式,基本可能满足90%以上的断言场景,具体参见如下脑图: 下面分别解释一下图中的五种思路: 1) 响应码 对于http类接口,有时开发人员只是通过设置接口响…

IDEA的火焰图简单使用

1. 火焰图是什么? 简单来说就是用来查看程序耗时的一张图 如何读懂火焰图? 2. mac上如何生成火焰图 找了一圈,原来idea原本就支持… 3. 测试代码 package org.example;import java.util.ArrayList; import java.util.List; import java.…

QT Quick初学笔记---第一篇

1、对Qt Quick的初步认识 Qt Quick是Qt5界面开发技术的统称,是以下几种技术的集合: QML:界面标记语言JavaScript:动态脚本语言QT C:跨平台C封装库 QML是与HTML类似的一种标记语言。 QML文件采用.qml作为文件格式后…

C语言、C++和C#:区别与特点的比较

C语言、C和C#是三种不同的编程语言,它们在以下几个方面存在区别: 设计宗旨:C语言是一种过程式编程语言,旨在提供高效的系统级编程。C是在C语言基础上发展而来的,既支持过程式编程,也支持面向对象编程。C#是…

C++图形开发(14):游戏完善——无限空中起跳解决

文章目录 1.问题描述2.如何解决?3.整段代码 1.问题描述 在游玩过程中,我们肯定发现了之前所给出的游戏源码中的一个小bug: 小球可以空中无限起跳!!!!!!!&…

Mysql进阶-

1、存储引擎 1.1 MySQL体系结构 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存…

安装VMtools

VM17上安装VMtools 遇到的问题: 安装VMware tools是灰色的 解决办法 关闭虚拟机,编辑虚拟机设置 最后点击确定,开启虚拟机 虚拟机->重新安装VMtools,点击即可,若没有点击,那就需要关机,再开机了 正常情况下&am…

【005】基于深度学习的图像语 通信系统

摘要 语义通信是一种新颖的通信方式,可通过传输数据的语义信息提高带宽效率。提出一种用于无线图像传输的系统。该系统基于深度学习技术开发并以端到端(E2E)的方式进行训练。利用深度学习实现语义特征的提取和重建,在发送端提取信…

【thinkpad电脑重装系统后双指滑动失效】

我的电脑在前段时间重装系统了,然后触控板一直用不了,但是平时用键盘比较多,没太在意,最近在宿舍,敲击键盘会影响室友睡觉,然后决心要弄好电脑触控板。 网上提及的方法很多,比如通过设备管理器…

利用MMSegmentation微调Mask2Former模型

前言 本文介绍了专用于语义分隔模型的python库mmsegmentation,github项目地址,运行环境为Kaggle notebook,GPU为P100针对环境配置、预训练模型推理、在西瓜数据集上微调新sota模型mask2former模型,数据说明由于西瓜数据集较小&am…