otter部署【原创】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 环境IP:10.10.6.171 部署:mysql源库IP:10.10.6.172 部署:mysql目标库IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上) 由于otter进行数据库同步,目前仅支持row,所以需要把源库的binlog_format改为ROWlog-bin=mysql-binexpire_logs_days=3binlog_format=ROW otter为纯java编写(manager,node,canal都为java编写),所以需要安装JDK。

环境
IP:10.10.6.171 部署:mysql源库
IP:10.10.6.172 部署:mysql目标库
IP:10.10.6.173 部署:zookeeper,manager,node,canal (也都部署到源库服务器上)

由于otter进行数据库同步,目前仅支持row,所以需要把源库的binlog_format改为ROW
log-bin=mysql-bin
expire_logs_days=3
binlog_format=ROW

otter为纯java编写(manager,node,canal都为java编写),所以需要安装JDK。

设置java环境变量
vi /etc/profile

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

#生效
source /etc/profile

一、部署zookeeper
下载地址:http://pan.baidu.com/s/1miC2j4O
官网地址:https://zookeeper.apache.org/

tar zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 /usr/local/zookeeper
cd /usr/local/zookeeper/conf
mv zoo_sample.cfg zoo.cfg
mkdir /usr/local/zookeeper/data

修改zoo.cfg配置文件
vi /usr/local/zookeeper/conf/zoo.cfg

dataDir=/usr/local/zookeeper/data
autopurge.purgeInterval=1

修改bin/zkEnv.sh脚本
vi /usr/local/zookeeper/bin/zkEnv.sh
将ZOO_LOG_DIR="." 修改为ZOO_LOG_DIR="/usr/local/zookeeper/data"
将ZOO_LOG4J_PROP=”INFO,CONSOLE” 修改为ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

修改bin/zkServer.sh脚本:
vi /usr/local/zookeeper/bin/zkServer.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

修改bin/zkCli.sh脚本:
vi /usr/local/zookeeper/bin/zkCli.sh
将ZOOBIN="${BASH_SOURCE-$0}" 修改为ZOOBIN=`readlink -f "${BASH_SOURCE-$0}"`

建立软连接
ln -s /usr/local/zookeeper/bin/zkServer.sh /usr/local/bin/zk-server
ln -s /usr/local/zookeeper/bin/zkCli.sh /usr/local/bin/zk-cli

echo 1 > /usr/local/zookeeper/data/myid

启动:zk-server start
关闭:zk-server stop

二、部署manager
下载地址:http://pan.baidu.com/s/1i5aEEw9
官网地址:https://github.com/alibaba/otter/releases

mkdir /usr/local/manager
tar zxvf manager.deployer-4.2.14.tar.gz -C /usr/local/manager

配置修改
vi /usr/local/manager/conf/otter.properties

## otter manager domain name #修改为正确访问ip,生成URL使用
otter.domainName = 10.10.6.173
## otter manager http port
otter.port = 8080
## jetty web config xml
otter.jetty = jetty.xml

## otter manager database config #修改为正确数据库信息 otter数据库SQL:http://pan.baidu.com/s/1kUEVQEN
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://10.10.6.199:3306/otter
otter.database.driver.username = root
otter.database.driver.password = 123456

## default zookeeper address #修改为zookeeper地址信息
otter.zookeeper.cluster.default = 127.0.0.1:2181

启动:/usr/local/manager/bin/startup.sh
关闭:/usr/local/manager/bin/stop.sh

三、部署node
下载地址:http://pan.baidu.com/s/1bpEg2g3
官网地址:https://github.com/alibaba/otter/releases

mkdir /usr/local/node
tar zxvf node.deployer-4.2.14.tar.gz -C /usr/local/node

cd /usr/local/node
echo 1 > conf/nid #需要和manager管理页面的序号相同

配置修改
vi /usr/local/node/conf/otter.properties

## otter arbitrate & node connect manager config #修改manager的地址信息
otter.manager.address = 127.0.0.1:1099

启动:/usr/local/node/bin/startup.sh #先不用启动
关闭:/usr/local/node/bin/stop.sh

node需要aria2

下载地址:http://pan.baidu.com/s/1hsonOA4

rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install aria2

四、部署canal
下载地址:http://pan.baidu.com/s/1jIE8nTc
官网地址:https://github.com/alibaba/canal/releases #下载canal.deployer

mkdir /usr/local/canal
tar zxvf canal.deployer-1.0.24.tar.gz -C /usr/local/canal

#只需部署canal无需配置和启动,canal可嵌入式运行,在manager页面管理中设置

五、设置manager管理页面
访问地址:http://10.10.6.173:8080/login.htm 用户名密码都为admin,密码可以系统管理中修改

1、Zookeeper管理

2、Node管理

3、数据源配置

4、数据表配置

先在源库和目标库新建一个测试表

SQL代码:

CREATE TABLE `test`.`example` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) COLLATE utf8_bin DEFAULT NULL ,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

5、canal配置

6、同步管理

7、测试

在源库中增加、修改、删除数据,在目标库中会准实时跟着变更。

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
14天前
|
消息中间件 存储 Apache
恭喜 Apache RocketMQ、Apache Seata 荣获 2024 开源创新榜单“年度开源项目”
近日,以“新纪天工、开物焕彩——致敬开源的力量”为活动主题的“重大科技成就发布会(首场)”在国家科技传播中心成功举办,并隆重揭晓了 2024 开源创新榜单,旨在致敬中国开源力量,传播推广开源科技成就,营造中国开源创新生态。2024 年开源创新榜单由中国科协科学技术传播中心、中国计算机学会、中国通信学会、中国科学院软件研究所共同主办,中国开发者社区承办,以王怀民院士为首组建评审委员会,进行研讨评审,面向中国开源行业领域,遴选具有创新性、贡献度和影响力的开源项目、社区、应用场景与开源事件。在评审出的 10 个年度开源项目中,Apache RocketMQ、Apache Seata 成功入选。
|
8月前
|
Kubernetes Cloud Native API
欢迎报名 Apache Seata (incubating) 开源之夏
Apache Seata (incubating) 邀请学生参加 2024 年开源之夏活动,报名时间为 4 月 30 日至 6 月 3 日。该项目旨在培养分布式事务领域的开发者,参与者将远程协作并有机会获得奖金。
1341 22
|
消息中间件 存储 供应链
开源之夏 2023|欢迎报名 Apache RocketMQ 社区项目!
开源之夏 2023 | 欢迎报名 Apache RocketMQ 社区项目!快来和社区大牛们一起完成课题项目,赢取技术提升和丰厚奖金吧~
173 0
开源之夏 2023|欢迎报名 Apache RocketMQ 社区项目!
|
Dubbo 中间件 应用服务中间件
《Apache Dubbo3 源码深入解析》首发免费下载
《Apache Dubbo3 源码深入解析》首发免费下载
《Apache Dubbo3 源码深入解析》首发免费下载
|
消息中间件 运维 Apache
《Apache RocketMQ 从入门到实战》电子版地址
《Apache RocketMQ 从入门到实战》这本书不仅由浅入深的介绍了 RocketMQ 的架构与实现,而且包含了多年线上超大规模集群开发运维经验的总结。
208 0
《Apache RocketMQ 从入门到实战》电子版地址
|
存储 中间件 Java
GitHub 前 CTO:全面微服务是最大的架构错误!网友:这不是刚改完吗...
GitHub 前 CTO:全面微服务是最大的架构错误!网友:这不是刚改完吗...
|
SQL 缓存 关系型数据库
Seata学习整理二
前面说过,seata在做二阶段提交前会生成前镜像、执行sql、生成后镜像。那么首先需要做的是,有数据源进行连接,然后需要对表的元数据信息进行抽取。这样才可以进行前镜像以及后镜像的操作。
218 0
Seata学习整理二
|
SQL 监控 算法
Seata学习整理
seata 一阶段:首先拦截sql,解析sql语句的语义,提取元数据,找到sql语句,在执行sql前生成前镜像,执行业务sql后,生成后镜像。生成seata事务锁数据,然后构建事务日志并插入事务日志表,注册分支事务。 二阶段:二阶段分支提交,删除保存的事务日志数据,完成数据清理。通过异步线程批量删除在二阶段提交的分支事务日志数据。如果是二阶段回滚操作,则通过事务协调管理器执行二阶段回滚,此时资源管理器会执行回滚一阶段已经执行的业务sql语句,还原数据。
181 0
Seata学习整理
|
消息中间件 SpringCloudAlibaba Java
SA实战 ·《SpringCloud Alibaba实战》第19章-消息服务:项目整合RocketMQ
SA实战 ·《SpringCloud Alibaba实战》第19章-消息服务:项目整合RocketMQ
684 0
SA实战 ·《SpringCloud Alibaba实战》第19章-消息服务:项目整合RocketMQ