otter:分布式数据库同步系统

Mycat + canal + otter 一、内容介绍 一.mycat Mycat是一个开源的数据库中间件,是一个大数据库集群。 支持事务、ACID、可以替代MySQL的加强版数据库。 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server mycat监控支持 支持对mycat、mysql性能监控 支持对mycat的jvm内存提供监控服务 支持对线程的监控 支持对操作系统CPU、内存、磁盘...... 阅读详情

一、otter介绍

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

otter项目:https://github.com/alibaba/otter
otter官方文档:https://github.com/alibaba/otter/wiki

二、QuickStart

1. 环境准备

服务器:
服务器A:192.168.x.1(主)
服务器B:192.168.x.3(从)

远程工具:XShell 6(用于建立远程连接)、Xftp 6(用于文件的上传)

操作系统:CentOS 7.2

JDK:1.8.0_221

数据库:MySQL 5.7

ZooKeeper:3.3.6

otter:otter包含两部分,一个是manager,另一个是node,版本都是4.2.16。

2.环境安装

(1) JDK的安装

otter为纯Java编写,因此需要确保机器中部署了Java环境。
本文下载版本:jdk-8u221-linux-x64.rpm(可根据具体需要自行选择)

1)上传安装包
打开Xftp 6,新建连接,上传安装包至指定的服务器,本文以 /home 为例。

2)执行安装
执行 rpm -ivh jdk-8u221-linux-x64.rpm 命令,开始安装JDK,等待安装完成。
在 /usr/java 下会增加一个 jdk1.8.0_221-amd64 ,说明JDK安装成功。

3)配置环境变量
执行 vim /etc/profile 命令,打开 profile 文件,按 i 进行文件的编辑,在文件的尾部添加如下内容:

JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
JAVA_BIN=/usr/java/jdk1.8.0_221-amd64/bin
JRE_HOME=/usr/java/jdk1.8.0_221-amd64/jre
PATH=$JAVA_BIN:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

注:以上根据实际安装路径填写。
另:如果系统中提示 -bash: vim: command not found 说明还未安装 vim ,需要先执行 yum -y install vim* 进行 vim 的安装。

编辑完成后,按 Esc 键退出编辑状态,并输入 :wq 进行保存并退出。
退出 profile 文件后,执行 source /etc/profile 命令,让配置文件立即生效。
执行 java -version 命令,查看Java信息。
java -version
出现如上信息说明JDK已经安装成功。

(2) MySQL的安装

本文下载版本:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

1)首先检查服务器中是否有之前安装的残留文件:

find / -name mysql

如果有,则进行删除。

rm -rf 目录+文件名

2)上传安装包
通过Xftp 6,上传MySQL安装包至服务器指定目录,以 /home 为例。

3)解压安装包

  • 进入安装包所在目录: cd /home
  • 解压缩: tar -xzvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
  • 重命名解压缩后的文件夹: mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql

4)添加用户及用户组

  • 新建mysql用户组: groupadd mysql
  • 查看新建的用户组: cat /etc/group
  • 新建mysql用户并添加至mysql用户组: useradd -r -g mysql mysql
  • 查看新建的用户: cat /etc/passwd</
Otter数据同步原理 上图是基于memory的仲裁器实现的数据扭转时许图,数据在经过SETL四个阶段完成数据处理,每个数据阶段处理完成将数据推送至下一个阻塞队列由下一个阶段的任务处理器完成数据处理再推向下一个阶段。在讲otter同步原理前需要提一下mysql的日志,otter是基于mysql的增量日志解析来实现数据同步的,这里的日志就是mysql二进制日志——binlog日志,该类型日志详细记录了所有修改的数据的sql,当某一时刻的数据误操作导致问题,或者数据库当即数据丢失,就可以通过binlog日志完成数据的找回。 阅读详情

相关推荐

数据同步 之 Otter

Otter

樵 3544

1.Otter初步介绍

Otter初步介绍 项目背景 阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。 otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全...

weixin_39545874的博客 315

大数据课程C5——ZooKeeper的应用组件

1. 为了更好地提高整个系统的扩展性和灵活性,在Otter中将整个数据同步流程抽象为类似于ETL的处理模型,具体分为四个阶段(Stage):a. Select:数据接入b. Extract:数据提取c. Transform:数据转换d. Load:数据载入2. 其中Select阶段是为了解决数据来源的差异性,比如可以接入来自Canal的增量数据,也可以接入其他系统的数据源。

u013955758的专栏 616

04|同城双活:如何实现机房之间的数据同步?

机房之间的数据同步一直是行业里的痛,因为高昂的实现代价,如果不能做到双活,总是会有一个1:1机器数量的机房在空跑,而且发生故障时,没有人能保证冷备机房可以马上对外服务。但是双活模式的维护成本也不低,机房之间的数据同步常常会因为网络延迟或数据冲突而停止,最终导致两个机房的数据不一致。好在Otter对数据同步做了很多措施,能在大多数情况下保证数据的完整性,并且降低了同城双活的实现难度。即使如此,在业务的运转过程中,我们仍然需要人工梳理业务,避免多个机房同时修改同一条数据。

sucaiwa的博客 5190

【Java】在做同城多活方案中如何实现机房之间的数据同步?

在业务初期,考虑到投入成本,很多公司通常只用一个机房提供服务。但随着业务发展,流量不断增加,我们对服务的响应速度和可用性有了更高的要求,这时候我们就要开始考虑将服务分布在不同的地区来提供更好的服务,这是互联网公司在流量增长阶段的必经之路。之前我所在的公司,流量连续三年不断增长。一次,机房对外网络突然断开,线上服务全部离线,网络供应商失联。因为没有备用机房,我们经过三天紧急协调,拉起新的线路才恢复了服务。这次事故影响很大,公司损失达千万元。

alen101的博客 1224

数据同步平台技术演进与实践

去哪儿机票售后为用户提供退票、改签、航班变动、行程服务、疫情政策等服务的业务。业务场景中有复杂的基于订单、客票、PNR、行程、航司等各种维度的查询诉求,这些数据分散存储在不同的mysql数据库表中,难以为复杂业务查询场景提供服务。为解决复杂查询场景,我们设计了一套将数据从一个数据源聚合导入到另一个数据源,提供同构或者异构、低延时的、最终一致性的数据同步系统。去哪儿数据同步平台是把数据从mysql同步到es中,并且提供统一的查询网关的服务。

weixin_57613965的博客 526

去哪儿网数据同步平台技术演进与实践

作者介绍 井显生,2019年加入去哪儿,现负责国内机票出票、退款、改签核心业务。在领域驱动设计(DDD)、高并发有大量实践经验。 1、前言 去哪儿网国内机票售后是为用户提供退票、改签、航班变动、行程服务、疫情政策等服务的业务。业务场景中有复杂的基于订单、客票、 PNR 、行程、航司等各种维度的查询诉求,这些数据分散存储在不同的 mysql 数据库表中,难以为复杂业务查询场景提供服务。为解决复杂查询场景,我们设计了一套将数据从一个数据源聚合导入到另一个数据源,提供同构或者异构、低延时的、最终一致性的数据

去哪儿网技术沙龙 531

同盾科技 x TiDB丨实时数据架构为风控智能决策保驾护航

同盾科技是中国领先的人工智能科技企业。为了确保服务的低延迟和高可用性,同盾的技术团队不断寻找最佳的技术架构。经过长时间调研,他们最终选择了新一代分布式数据库 TiDB 作为离线层的核心数据库,。同盾科技是中国领先的人工智能科技企业,专注决策智能领域,致力于帮助政企客户防范风险、提升决策效率。

weixin_42241611的博客 257

深入浅出 Otter与Canal

第一、Otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的Mysql/Oralce数据库,一个分布式数据库同步系统; 基本工作原理图如下: 基于Canal开源产品,获取数据库增量日志数据; 典型管理系统架构,manager(WEB 管理) + node(工作节点) manager运行时推送同步配置到node节点; ...

杨鑫newlife的专栏 3518

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 358

如何通过常规测井曲线识别砂岩、泥岩、碳酸盐岩和煤层

常规测井曲线通过不同岩性的物理性质差异识别砂岩、泥岩、碳酸盐岩和煤层。砂岩表现为低自然伽马(GR)、中等密度(RHOB)和声波时差(DT);泥岩以高GR、高中子(NPHI)和高DT为特征;碳酸盐岩显示低GR、高RHOB和低DT;煤层则具有极低RHOB、极高NPHI和DT的独特组合。综合GR与三孔隙度曲线(RHOB、NPHI、DT)可有效区分岩性,其中密度测井对煤层识别最可靠。电阻率(RT)曲线辅助判断流体性质,但需结合其他参数综合分析。

love code, love life. 2597

PnP 单目相机位姿估计(二):solvePnP利用二维码求解相机世界坐标

前言 原理简介 输入参数准备 1 objectPoints特征点世界坐标 2 imagePoints特征点在摄像头下的像素点坐标 3cameraMatrixdistCoeffs内参矩阵和畸变矩阵 相机世界坐标的求解 1求世界坐标中的点在相机坐标系下的坐标 2求相机在世界坐标中的坐标 3效果求解相机在世界坐标系下的坐标点 4求解代码1.前言  很多时候,当我们利用单目相机获取图像时,往往只能获取图像中

cocoaqin的博客 5万+

Springboot+Vue 实现鸿蒙商城管理系统开发实践

通过使用 Springboot 和 Vue 技术栈,我们成功实现了鸿蒙商城管理系统的开发。系统具备用户管理、商品管理、订单管理、库存管理和统计分析等功能,支持 Web 端和鸿蒙端的访问和操作。在开发过程中,我们充分利用了 Springboot 的快速开发优势和 Vue 的组件化开发特点,提高了开发效率和系统的可维护性。同时,通过与鸿蒙设备的集成,实现了多设备之间的数据交互和协同工作,提升了用户体验。

ZXJ_SXT的博客 1324

.NET MAUI跨平台串口通讯方案

MAUI跨平台串口通信架构设计采用分层模式,核心是共享业务逻辑层与平台特定实现。通过定义统一的ISerialPortService接口,实现了Windows、Android、iOS和macOS四大平台的串口通信功能。Windows平台使用System.IO.Ports类库,Android通过USB Host模式实现,iOS基于ExternalAccessory框架,macOS则采用IOKit。该设计支持串口连接管理、数据收发等核心功能,并通过事件机制实现异步通信。架构采用条件编译区分各平台实现,确保代码复用

冰茶的博客 1666

YOLOv11改进 | 检测头篇 | 利用动态蛇形卷积DySnakeConv改进yolov11分割检测头(全网独家首发,Segment)

本文给大家带来的最新改进机制是一种我进行优化的专用于分割的检测头,在分割的过程中,最困难的无非就是边缘的检测,动态蛇形卷积(Dynamic Snake Convolution)通过自适应地聚焦于细长和迂回的局部结构,准确地捕捉管状结构的特征。这种卷积方法的核心思想是,通过动态形状的卷积核来增强感知能力,针对管状结构的特征提取进行优化,所以将这个卷积针对于YOLOv11的分割头进行融合是非常合适的,当然本文的检测头也支持用于目标检测,但是我将其设计出来是主要为了分割的读者使用的。

Snu77的博客 3432

YOLOv8 道路病害检测全栈工程|22 类路面裂缝坑洞 VOC&YOLO 数据集、PyQt 精美 GUI、ONNX 量化、全套训练评估曲线落地

城市道路、国省道、高速公路路面长期受车辆碾压、雨水侵蚀,衍生纵向 / 横向裂纹、坑洼、车辙、接缝剥落等二十余种路面病害。传统人工道路巡检存在致命行业痛点:人工徒步 / 乘车目视巡检效率极低,单日有效巡查里程不足 20 公里;毫米级细微线性裂纹肉眼极易漏检,雨水冲刷后微小病害快速扩张为大坑槽,养护成本翻倍;强光暴晒、阴雨积水、路面油污场景人工分辨难度大;海量巡检图片人工分类统计病害台账耗时数天,养护决策缺乏量化数据支撑。传统阈值、边缘检测图像处理仅能识别大面积坑洞,无法区分二十余种细分裂纹类型,泛化能力极差。

getusushu的博客 123

配置适合Gurobi的机器硬件环境需要考虑的因素

介绍了在为gurobi选择合适的硬件环境时,需要考虑三个方面的因素;

Linshaodan520的博客 1066

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: CentOS修改系统时间
me.Mage
博客等级 码龄8年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值