Otter 安装流程

优质博文:IT-BLOG-CN

一、背景

随着公司的发展,订单库的数据目前已达到千万级别,需要进行分表分库,就需要对数据进行迁移,我们使用了otter,这里简单整理下,otter 的安装过程,希望对你有所帮助。

二、环境准备

otter manager依赖于mysql进行配置信息的存储,所以需要预先安装mysql,并初始化otter manager的系统表结构

初始化otter manager系统表:

下载:

shell 复制代码
wget https://raw.github.com/alibaba/otter/master/manager/deployer/src/main/resources/sql/otter-manager-schema.sql 

载入:

shell 复制代码
source otter-manager-schema.sql

otter-manager-schema.sql 脚本说明(了解):是Otter数据同步工具的管理数据库的SQL脚本文件,用于创建和初始化Otter的管理数据库表结构。这个文件包含了Otter管理系统所需的各种表和索引的定义。这些表用于存储同步任务的配置信息、任务状态、日志等。

以下是一个简化的示例,展示了otter-manager-schema.sql中可能包含的内容:

sql 复制代码
-- 创建用于存储同步任务配置信息的表
CREATE TABLE `otter_channel` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL,
    `description` VARCHAR(255) DEFAULT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储同步任务状态的表
CREATE TABLE `otter_pipeline` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `channel_id` BIGINT(20) NOT NULL,
    `name` VARCHAR(100) NOT NULL,
    `description` VARCHAR(255) DEFAULT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_channel_id` (`channel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储节点信息的表
CREATE TABLE `otter_node` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(100) NOT NULL,
    `ip` VARCHAR(20) NOT NULL,
    `port` INT(11) NOT NULL,
    `status` VARCHAR(20) DEFAULT NULL,
    `gmt_create` DATETIME NOT NULL,
    `gmt_modified` DATETIME NOT NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储同步任务日志的表
CREATE TABLE `otter_log` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `pipeline_id` BIGINT(20) NOT NULL,
    `message` TEXT NOT NULL,
    `log_time` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_pipeline_id` (`pipeline_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 创建用于存储数据变更事件的表
CREATE TABLE `otter_event` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `pipeline_id` BIGINT(20) NOT NULL,
    `event_type` VARCHAR(20) NOT NULL,
    `data` TEXT NOT NULL,
    `event_time` DATETIME NOT NULL,
    PRIMARY KEY (`id`),
    KEY `idx_pipeline_id` (`pipeline_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

整个otter架构依赖了zookeeper进行多节点调度,所以需要预先安装zookeeper,不需要初始化节点,otter程序启动后会自检。manager需要在otter.properties中指定一个就近的zookeeper集群机器

三、启动步骤

下载otter manager

直接下载 ,可访问:https://github.com/alibaba/otter/releases ,会列出所有历史的发布版本包下载方式,比如以x.y.z版本为例子:

shell 复制代码
wget https://github.com/alibaba/otter/releases/download/otter-x.y.z/manager.deployer-x.y.z.tar.gz

或者自己编译

shell 复制代码
git clone git@github.com:alibaba/otter.git
cd otter; 
mvn clean install -Dmaven.test.skip -Denv=release

编译完成后,会在根目录下产生target/manager.deployer-$version.tar.gz

解压缩

shell 复制代码
mkdir /tmp/manager
tar zxvf manager.deployer-$version.tar.gz  -C /tmp/manager

配置修改

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

## otter manager database config ,修改为正确数据库信息
otter.database.driver.class.name = com.mysql.jdbc.Driver
otter.database.driver.url = jdbc:mysql://127.0.01:3306/ottermanager
otter.database.driver.username = root
otter.database.driver.password = hello

## otter communication port
otter.communication.manager.port = 1099

## otter communication pool size
otter.communication.pool.size = 10

## default zookeeper address,修改为正确的地址,手动选择一个地域就近的zookeeper集群列表
otter.zookeeper.cluster.default = 127.0.0.1:2181
## default zookeeper session timeout = 90s
otter.zookeeper.sessionTimeout = 90000

## otter arbitrate connect manager config
otter.manager.address = ${otter.domainName}:${otter.communication.manager.port}

准备启动

shell 复制代码
sh startup.sh

查看日志

shell 复制代码
vi logs/manager.log

出现类似日志,代表启动成功

log 复制代码
2024-11-14 13:19:45.911 [] WARN  com.alibaba.otter.manager.deployer.JettyEmbedServer - ##Jetty Embed Server is startup!
2024-11-14 13:19:45.911 [] WARN  com.alibaba.otter.manager.deployer.OtterManagerLauncher - ## the manager server is running now ......

验证

访问: http://127.0.0.1:8080/,出现otter的页面,即代表启动成功

访问:http://127.0.0.1:8080/login.htm,初始密码为:admin/admin,即可完成登录. 目前:匿名用户只有只读查看的权限,登录为管理员才可以有操作权限

关闭

shell 复制代码
sh stop.sh
相关推荐
小毛驴8502 分钟前
Linux 后台启动java jar 程序 nohup java -jar
java·linux·jar
DKPT35 分钟前
Java桥接模式实现方式与测试方法
java·笔记·学习·设计模式·桥接模式
好奇的菜鸟2 小时前
如何在IntelliJ IDEA中设置数据库连接全局共享
java·数据库·intellij-idea
tan180°2 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
满昕欢喜2 小时前
SQL Server从入门到项目实践(超值版)读书笔记 20
数据库·sql·sqlserver
DuelCode3 小时前
Windows VMWare Centos Docker部署Springboot 应用实现文件上传返回文件http链接
java·spring boot·mysql·nginx·docker·centos·mybatis
优创学社23 小时前
基于springboot的社区生鲜团购系统
java·spring boot·后端
why技术3 小时前
Stack Overflow,轰然倒下!
前端·人工智能·后端
幽络源小助理3 小时前
SpringBoot基于Mysql的商业辅助决策系统设计与实现
java·vue.js·spring boot·后端·mysql·spring
猴哥源码3 小时前
基于Java+springboot 的车险理赔信息管理系统
java·spring boot