Otter改造 增加springboot模块和HTTP调用功能

环境搭建 & 打包

环境搭建:

  1. 进入 $otter_home/lib 目录
  2. 执行:bash install.sh

打包:

  1. 进入$otter_home目录
  2. 执行:mvn clean install -Dmaven.test.skip -Denv=release
  3. 发布包位置:$otter_home/target

项目背景

   阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

   otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otter4。

目前同步规模:

  1. 同步数据量6亿
  2. 文件同步1.5TB(2000w张图片)
  3. 涉及200+个数据库实例之间的同步
  4. 80+台机器的集群规模

项目介绍

名称:otter ['ɒtə(r)]

译意: 水獭,数据搬运工

语言: 纯java开发

定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统

项目改造

基于Otter master分支最新提交,增加springboot client工程,目标是为公司内springboot项目通过HTTP调用或者Dubbo调用操作Otter manager,实现任务创建和启动停止等

改造内容:

  1. 新增springboot client工程
  2. jdk版本升级为1.8
  3. 使用springboot 2.3.2.RELEASE,大家可通过RESTful接口调用 Otter manager模块

打包:

  1. 进入$otter_home目录
  2. 执行:mvn clean install -Dmaven.test.skip -Denv=release
  3. 发布包位置:$otter_home/target

部署Otter manager:

  1. 按照官方文档部署Otter的manager和node,https://github.com/alibaba/otter/wiki/QuickStart

解压:

  1. 进入$otter_home/target目录
  2. 执行:mkdir client && tar -xf client.deployer-4.2.19-SNAPSHOT.tar.gz -C client
  3. 启动脚本位置:$otter_home/target/client/bin/start.sh
  4. 修改manager端口:$otter_home/target/client/conf/application.yml,默认是 127.0.0.1:1099,请改成你部署的Otter manager地址

启动 springboot client:

  1. 进入$otter_home/target/client目录
  2. 启动脚本位置:bin/startup.sh
  3. 执行启动脚本:sh bin/startup.sh
  4. 测试调用:在命令行窗口输入curl --location 'http://localhost:8100/nodetest/node/1' 或者 浏览器地址栏输入 http://localhost:8100/nodetest/node/1,
    返回 node 节点的信息表示成功:
    Node[id=1,name=test-node1,ip=127.0.0.1,port=2088,status=START,description=,parameters=NodeParameter[mbeanPort=2090,downloadPort=2089,zkCluster=AutoKeeperCluster[id=1,clusterName=test-zk,serverList=[10.23.104.43:2181],description=,gmtCreate=2023-07-29 14:55:06,gmtModified=2023-08-23 19:48:22],externalIp=127.0.0.1,useExternalIp=false],gmtCreate=2023-07-29 14:56:14,gmtModified=2023-08-01 10:51:56]
  5. 执行关闭脚本停止client:sh bin/stop.sh
    Oook! cost:2

改造代码已经开源到个人github,注意是 feature- springboot分支:https://github.com/quanllong/otter/tree/feature-springboot

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

Python —— pytest框架

1、认识pytest框架 1、搭建自动化框架的思路与流程 1、搭建自动化测试框架的思路和流程,任意测试手段流程都是一致的:手工测试、自动化测试、工具测试 手工测试:熟悉业务 —— 写用例 —— 执行用例并记录结果 —— 生成测试报告自动化测试…

stack与queue的简单封装

前言: stack与queue即栈和队列,先进后出/先进先出的特性我们早已了然于心, 在学习数据结构时,我们利用c语言实现栈与队列,从结构体写起,利用数组或指针表示他们的数据成员,之后再一个个实现他们…

Mycat与ShardingSphere如何选择(未完待续)

区别 MycatSharding-JDBCSharding-ProxySharding-Sidecar官方网站官方网站官方网站官方网站官方网站源码地址GitHubGitHubGitHubGitHub官方文档Mycat 权威指南官方文档官方文档官方文档开发语言JavaJavaJavaJava开源协议GPL-2.0/GPL-3.0Apache-2.0Apache-2.0Apache-2.0数据库M…

漏刻有时数据可视化Echarts组件开发(30):自定义方向的数据流向动画

let points = [{name: 市城市管理局,desc: {type: 1,},},{name: 科大讯飞,desc: {type: 2,},},{name: 市水利局,desc: {type: 1,},},{name: 市政法委,desc: {type: 1,},},{name: 市自然资源和规划局,desc: {type: 1,},},{name: 市生态环境局,desc: {type: 1,},},{name: 市大数据…

Linux:centos9的本地yum仓库配置

其实9和7的配置方法是差不多一样的,只不过你使用7的本地yum仓库里面直接挂载就可以直接把仓库位置指向挂载点 具体可以看我往期文章,但是先看完我下面的描述再去看我链接的文章才能看懂如何配置centos9的yum仓库 Linux:YUM仓库服务_鲍海超-…

监督学习和非监督学习, 半监督学习和增强学习

监督学习 给机器的训练数据拥有“标记”或者“答案”, 也就是又有x、又有y 监督的意思是说我们针对给机器的数据进行了正确答案的划分, 这个正确的答案的本身就被称为监督的信息 比如: 生活中很多学习的过程都是监督学习的过程,…

pom.xml中解决“vulnerable dependency maven:org.yaml:snakeyaml:1.33“警告问题

问题 当我们引入依赖的时候,pom文件会有这样的提示,其大概的意思就是 maven:org.yaml:snakeyaml:1.30"表示通过Maven引入了一个潜在的安全漏洞依赖项"org.yaml:snakeyaml:1.30" 解决办法 其实我们就是要更改这个依赖的版本&#xff0c…

MongoDB(一) windows 和 linux 之 Ubuntu 安装

数据库分类 一、关系型数据库(RDBMS) mysql 、Oracle、DB2、SQL Server 关系数据库中全都是表 二、非关系型数据库(NO SQL) MongoDB、Redis 键值对数据库 文档数据库MongoDB 下载 mongoDB https://www.mongodb.com/try/downloa…

你写过的最蠢的代码是?

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

9.22数电(触发器寄存器一些电路分析reg的思考)

用作存储元件的电路 新输入的信号可能使电路保持同样的状态也可能使电路进入另一种新的状态 输入信号置位与复位可以用于改变构成存储元件的电路状态 RS锁存器 通过或非门就是说输入信号中有一个是1,输出就的是0 在RS0时,RS对或非门的结果无影响&am…

蓝桥杯 题库 简单 每日十题 day7

01 啤酒和饮料 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你…