alibaba otter docker 测试环境一键生成

目录

1、创建配置文件

2、运行镜像

3、管理地址

4、创建同步测试

1.创建测试数据库

2.创建数据源

3.创建数据表

4.Canal配置

注意:内存存储batch获取模式,设置数值太高会导致otter manager程序卡死,web无响应

5.创建同步

6.数据表同步测试

已知出错问题解决: 


1、创建配置文件

创建一个otter_Manager目录用来保存配置文件

新建docker-compose.yml文件

内容:

version: "3"
services:
  otter_manager:
    image: lsqtzj/otter_manager
    restart: always
    container_name: otter_manager
    hostname: otter_manager
    networks:
      otter:
        ipv4_address: 10.21.0.10
    ports:
      - 8080:8080 
      - 8018:8018 #zookeeper ui
      - 33061:3306 
    volumes: 
      - "./otter_manager/mysql/:/var/lib/mysql/"
      - "./otter_manager/zkData/:/home/admin/zkData/"
    environment:
      TZ: Europe/Rome #Asia/Shanghai 时区
      ZOO_CLUSTER: otter_manager:2181,node01:2181,node02:2181
      ZOO_MY_ID: 1
      ZOO_SERVERS: server.1=otter_manager:2888:3888 server.2=node01:2888:3888 server.3=node02:2888:3888
    extra_hosts:
      - "otter_manager:10.21.0.10"
      - "node01:10.21.0.11"      
      - "node02:10.21.0.12"

  node01:
    image: lsqtzj/otter_node
    container_name: node01
    restart: always
    hostname: node01    
    restart: always
    networks:
      otter:
        ipv4_address: 10.21.0.11
    ports:
      - 33062:3306 
    volumes: 
      - "./node01/mysql/:/var/lib/mysql/"
      - "./node01/zkData/:/home/admin/zkData/"
    environment:
      TZ: Europe/Rome #Asia/Shanghai 时区
      ZOO_CLUSTER: otter_manager:2181,node01:2181,node02:2181
      ZOO_MY_ID: 2
      ZOO_SERVERS: server.1=otter_manager:2888:3888 server.2=node01:2888:3888 server.3=node02:2888:3888
    extra_hosts:
      - "otter_manager:10.21.0.10"
      - "node01:10.21.0.11"      
      - "node02:10.21.0.12" 
    depends_on:
      - otter_manager   

  node02:
    image: lsqtzj/otter_node
    restart: always
    container_name: node02
    hostname: node02
    networks:
      otter:
        ipv4_address: 10.21.0.12
    ports:
      - 33063:3306
    volumes: 
      - "./node02/mysql/:/var/lib/mysql/"
      - "./node02/zkData/:/home/admin/zkData/"
    environment:
      TZ: Europe/Rome #Asia/Shanghai 时区
      ZOO_CLUSTER: otter_manager:2181,node01:2181,node02:2181
      ZOO_MY_ID: 3
      ZOO_SERVERS: server.1=otter_manager:2888:3888 server.2=node01:2888:3888 server.3=node02:2888:3888
    extra_hosts:
      - "otter_manager:10.21.0.10"
      - "node01:10.21.0.11"      
      - "node02:10.21.0.12"
    depends_on:
      - node01

networks:
  otter:
    driver: bridge
    ipam:
      config:
        - subnet: 10.21.0.0/16
          gateway: 10.21.0.1

目录结构 

2、运行镜像

命令行

 docker-compose up -d

启动后会自动生成,node01,node02,otter_manager 用于保存数据。需要复位数据直接删除目录。

3、管理地址

http://localhost:8080/
管理员/密码:admin/admin
zookeeper ui
http://localhost:8018/commands
mysql
管理员/密码:root / otter
普通用户/密码:otter / otter

4、创建同步测试

1.创建测试数据库

CMD模式

docker exec -it otter_manager /bin/bash
mysql -hnode01 -uroot -potter -e "CREATE database testdb;"
mysql -hnode02 -uroot -potter -e "CREATE database testdb;"

 

2.创建数据源

打开管理页面:http://localhost:8080/已管理员方式登录 用户名/密码 admin / admin 

 配置管理->数据源配置

 数据源名称 11.testdb

数据源名称 12.testdb

 

3.创建数据表

 配置管理->数据表配置

schema name 要同步的数据库名

table name这里填 .* 代表所有表,注意有个点号

数据源选择刚刚创建的

这里的验证不成功不用管是bug

重复步骤创建目标数据表

4.Canal配置

配置管理->Canal配置

 canal名称:11.canal //可以随便填

数据库地址:10.21.0.11:3306;  //填主库地址,一定要 ; 结尾

 数据库帐号:root

数据库密码:otter

位点自定义设置:选中

参数获取方式:

命令行:

mysql -hnode01 -uroot -potter -e "show master status;select unix_timestamp();"

 内容:{"journalName":"mysql-bin.000003","position":319,"timestamp":1633602912};

注意:内存存储batch获取模式,设置数值太高会导致otter manager程序卡死,web无响应

内存存储batch获取模式:MEMSIZE(MEMSIZE 内存控制,ITEMSIZE为数量控制)

内存存储buffer记录数:1024 (根据主机性能情况调整)

 其他配置用默认值点保存 

 基本配置完成

5.创建同步

同步管理->Channel管理

Channel Name:11.testdb->12.testdb

同步一致性:基于当前日志变更

同步模式:列记录模式

是否开启数据一致性:是

一致性算法:单向回环补救

一致性反查数据库延迟阀值(s):60

其他配置默认

点击刚刚创建的Channel名字 11.testdb->12.testdb 进入Pipeline管理

 Pipeline名字:Pipeline_11.testdb-12.testdb 可以随便填

Select机器:选中node01

Load机器:选中node02

Canal名字:选中刚刚创建的 11.canal

 主站点:是

其他默认值

 

  

点 监控 按钮

 一键添加

全部开启

 回到Pipeline管理

点击Pipeline名字Pipeline_11.testdb-12.testdb 进入映射关系列表

点添加

 源数据表:点 查找数据表进行选择

目标数据表:点 查找数据表进行选择

 

 其他默认,点保存

回到Channel管理页面 启用服务

单向同步配置完成

6.数据表同步测试

登录node01 mysql

mysql -hnode01 -uroot -potter
use testdb;
CREATE TABLE `test_table1` (
`id` int(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL
) AUTO_INCREMENT = 1;

 exit退出mysql 命令行,验证同步。

mysql -hnode02 -uroot -potter -e "use testdb;show tables ;"

可以看到test_table1已经同步了

接着执行下面的命令随机生成1000条记录

mysqlslap --defaults-file="/etc/my.cnf" --concurrency=50 --iterations=1 --create-schema=testdb --query="insert into test_table1 (name) values(substring(md5(rand()),1,100));" --number-of-queries=1000 -uroot -potter -P3306 -hnode01

验证同步: 

mysql -hnode02 -uroot -potter -e "select * from testdb.test_table1;"


已知出错问题解决: 

所有服务启动好后过2分钟还是提示未启动

 解决方法重启指定的客户机镜像,出错原因估计是宿主机内存不够导致。

问题解决

镜像地址:

Docker Hub

镜像源码地址:GitHub - lsqtzj/Alibaba_Otter_Manager_DockerCompose: Alibaba Otter Managerdocker-compose.yml 测试环境

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值