canal server 标准化集群搭建(一)

1.背景

随这业务增加,数据同步服务 canal server 需求与日俱增,以往私搭乱建的 canal server 不符合运维标准化。

2.目的

规范 canal server 的部署,形成固定操作流程及文档

3. 环境版本

canal server  canal.deployer-1.1.4.tar.gz

canal admincanal.admin-1.1.4.tar.gz

zookeeperzookeeper-3.4.14.tar.gz

zkuiGitHub - DeemOpen/zkui: A UI dashboard that allows CRUD operations on Zookeeper.

4. 搭建步骤

3.1. 安装zookeeper

# 下载

wget http://mirror.olnevhost.net/pub/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz

tar zxvf zookeeper-3.4.11.tar.gz 

mv zookeeper-3.4.11 /data/zookeeper

# 修改环境变量

export ZOOKEEPER_HOME=/data/zookeeper

export PATH=$PATH:$ZOOKEEPER_HOME/bin

# 重命名配置文件

mv $ZOOKEEPER_HOME/conf/zoo_sample.cfg $ZOOKEEPER_HOME/conf/zoo.cfg

# 编辑配置文件

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/logs

clientPort=2181

server.1=10.90.48.28:2888:3888

server.2=10.90.48.29:2888:3888

server.3=10.90.48.30:2888:3888

# 添加 zk server id

    #master

echo "1">/data/zookeeper/data/myid

    #slave1

echo "2">/data/zookeeper/data/myid

    #slave2

echo "3">/data/zookeeper/data/myid

# 启动 zookeeper

cd /data/zookeeper/bin

./zkServer.sh  start

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

# 验证 zookeeper 状态

zkServer.sh  status

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Mode: follower

# 访问 zookeeper

zkCli.sh -server

# 停止 ZooKeeper 服务

./zkServer.sh  stop

ZooKeeper JMX enabled by default

Using config: /usr/local/zookeeper/zookeeper-3.4.11/bin/../conf/zoo.cfg

Stopping zookeeper ... STOPPE

3.2. 安装 zkui

# 拉取代码

git clone https://github.com/DeemOpen/zkui.git

# 源码编译需要安装 maven

bash <(curl -s -S -L https://git.xiaojukeji.com/elevate/environment/raw/master/setup-scripts/maven_setup.sh)

cd zkui/

yum install -y maven

mvn clean install

# 修改配置文件默认值

vim config.cfg

serverPort=8090     #指定端口(端口只开放了8000~8100)

zkServer=192.168.1.110:2181

sessionTimeout=300000

# 创建 target 目录(解压后有个 target 文件,执行 mvn 安装时报错找不到 target 目录,怀疑是 bug)

rm target

# 配置我滴 maven 源

bash <(curl -s -S -L https://git.xiaojukeji.com/elevate/environment/raw/master/setup-scripts/maven_setup.sh)

LDAP username:xxx   # 输入 LDAP 账号

password:       # 输入密码

# 安装 maven 包(自动安装到 target 目录下,zkui-2.0-SNAPSHOT-jar-with-dependencies.jar 会被安装)

mvn clean install

# 启动程序至后台,2.0-SNAPSHOT 会随软件的更新版本不同而不同,执行时请查看target 目录中真正生成的版本

nohup java -jar target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &

# 用浏览器访问

http://192.168.1.110:8090/

3.3. 安装 canal server

# 上传下载包

rsync -avr --port=8028 [email protected]::home/canal.deployer-1.1.4.tar.gz .

# 创建目录

mkdir -p /data/canal/canal_test_dhr_entry

# 解压

tar zxvf canal.deployer-1.1.4.tar.gz -C /data/canal/canal_test_dhr_entry

# 重命名 instance 名称

mv /data/canal/canal_test_dhr_entry/conf/example /data/canal/canal_test_dhr_entry/conf/c_test_dhr_entry

# 修改 canal.properties ——主进程配置文件

vim /data/canal/canal_test_dhr_entry/conf/canal.properties

# 第8、9行修改端口

canal.port = 21121

canal.metrics.pull.port = 21122

# 第11、12行取消注释

canal.user = canal

canal.passwd = E3619321C1A937C46A0D8BD1DAC39F93B27D4458

# 第15行取消注释,修改 admin server 地址

canal.admin.manager = :8089

# 第16行修改端口

canal.admin.port = 21120

# 第20行添加 zk server

canal.zkServers =

# 第60行修改为 true

canal.instance.filter.table.error = true

# 第79行修改为 false

canal.instance.tsdb.enable = false

# 第92行添加 instance name

canal.destinations = c_test_saber_warehouse

# 第106行注释

#canal.instance.global.spring.xml = classpath:spring/file-instance.xml

# 第107行取消注释

canal.instance.global.spring.xml = classpath:spring/default-instance.xml

# 保存

# 修改 instance 配置文件——非必须,可以不修改,因为配置 canal admin 后,该信息是从 admin 获取的

vim /data/canal/canal_test_dhr_entry/conf/c_test_dhr_entry/instance.properties

# 第9行修改源数据库地址:端口

canal.instance.master.address=10.179.250.150:3306

# 第33行修改为源数据库抽数用户,权限为 replication client、replication slave、指定库的 select 权限

canal.instance.dbUsername=u_test_dhr_org_srv

# 第34行修改为源数据库抽数用户的密码

canal.instance.dbPassword=xxxxxxxxx

# 第41行修改为要抽取的数据库(白名单)

canal.instance.filter.regex=dhr-organization-service\\..*

# 第50行修改为instance name,要与上级目录名、canal.properties 中的 intance name 一致

canal.mq.topic=c_test_dhr_org_srv

# 保存

3.4. 安装 canal admin

# 下载

wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.admin-1.1.4.tar.gz

# 解压缩

mkdir /tmp/canal-admin

tar zxvf canal.admin-$version.tar.gz  -C /tmp/canal-admin

# 修改配置

vi conf/application.yml

# 修改如下内容

server:

  port: 8089

spring:

  jackson:

    date-format: yyyy-MM-dd HH:mm:ss

    time-zone: GMT+8

spring.datasource:

  address: 127.0.0.1:3306   # canal manager 库的地址

  database: canal_manager   # 数据库名

  username: canal           # canal manager 数据库访问用户

  password: canal           # canal manager 数据库访问用户密码

  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          # canal admin 页面登陆用户,管理员权限

  adminPasswd: admin        # canal admin 登陆用户密码

# 初始化元数据库

mysql -h127.1 -uroot -p

# 导入初始化SQL

> source conf/canal_manager.sql

# 启动 canal admin

sh bin/startup.sh

# 访问 canal admin,默认密码:admin/123456

http://127.0.0.1:8089

4. canal admin 的使用

4.1. 新建集群

集群名称:zk + 环境标签(prod/stage/test/dev + 目标库缩写(compatible_hrdata+ @ + RD名字

zk 地址:zk 集群的 host:port ,多个主机用 "," 分隔

canal server 标准化集群搭建(一)_第1张图片

你可能感兴趣的:(java-zookeeper,zookeeper,java,数据库)