基于Maxwell的MySQL数据传输服务整体设计方法教程

技术基于Maxwell的MySQL数据传输服务整体设计方法教程这篇文章主要介绍“基于Maxwell的MySQL数据传输服务整体设计方法教程”,在日常操作中,相信很多人在基于Maxwell的MySQL数据传输服务整体设计方

本文主要介绍“基于Maxwell的MySQL数据传输服务整体设计方法教程”。在日常操作中,相信很多人对基于Maxwell的MySQL数据传输服务的整体设计方法教程有所怀疑。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解决“基于Maxwell的MySQL数据传输服务整体设计方法教程”的疑惑!接下来,请和边肖一起学习!

1.系统整体设计

系统总体设计如下:

基于Maxwell的MySQL数据传输服务整体设计方法教程

其中,DTS是平台的前端,可以得到专业前端团队的支持。

数据传输系统DTS是一个独立的业务系统,目前正在进行改造。为了实现初始版本,基线版本是数据库运维系统的当前版本,后面只维护DTS端的相关逻辑。

为了考虑后续的可扩展性和可维护性,DTS将基于读取器、写入器和Service三个通用模块构建,读取器和写入器可以根据具体的技术方向进行细分。

关联系统是数据库运维系统、任务系统和大数据管理系统,这些关联系统的元数据和一些逻辑功能将被调用。

在整个数据传输服务过程中,一个基本属性是task_code,这是DTS任务创建、中端数据传输和后端服务集成中的一个常见属性。task_code的含义是client_id,格式是dts _[IDC]_[Maxwell _ IP]_[Maxwell _ code]。后端服务的主题将添加基于client_id的数据库和表信息的组合。

当基本信息(如数据库IP、端口等。)进入DTS前端页面,调用中端的服务接口生成对应的client_id,后端服务根据DTS任务列表中的task_code进行任务管理,而中端服务则根据client_id进行同步对象配置管理/服务启停等相应操作。

的相关数据传输流程如下:

基于Maxwell的MySQL数据传输服务整体设计方法教程

2.中端管理设计

中端管理主要基于Maxwell的部署管理、配置管理、同步对象列表变更、服务管理(启动、停止)、服务自我管理和监控报警。目前的实现主要基于API,本地前端初步实现。

2.1. 部署管理

部署管理主要是实现对Maxwell服务部署的平台管理。目前有两台Maxwell应用服务器,分别为130.200和130.201。档案数据库是麦克斯韦服务的基本配置数据,是麦克斯韦发起的数据库的基本元数据。

通过平台部署可以实现以下功能:

1)可以实现自动寻址,对于Maxwell新增的同步任务,可以匹配相应的应用服务器,在后续新增应用服务器的情况下,可以实现快速调整和适配。

基于Maxwell的MySQL数据传输服务整体设计方法教程

2)如果实例B的maxwell服务已经部署在服务器A上,在添加数据同步任务时,需要重用现有的maxwell服务配置,不需要在新的服务器中重新配置。

3)服务配置的基础准备,如maxwell相关账户、防火墙开放等需要脚本化管理支持,访问以API的形式提供。目前统一的Maxwell访问账号是dba_maxwell_repl。

(1)主数据库的Master端打开防火墙权限,创建相应的数据库账户。

数据库从库的从属端打开防火墙权限。

4)4)MySQL服务的拓扑管理基于数据库运维管理系统,需要封装相应的API获取Slave信息,需要在Maxwell配置列表中进行维护和管理。

补充:

前置任务:

在130.201服务器上部署Maxwell修订版服务。

Maxwell的访问测试是基于测试环境完成的,生产者是stdout。

后续开发可参考以下实施要点:

完整的麦克斯韦模板配置。

可以配置模板生成自定义配置,封装统一启停脚本。

Maxwell自动寻址逻辑,同一实例只能重用一个Maxwell进程服务。

Client_id生成逻辑。

麦克斯韦代码生成逻辑。

基于t封装DTS端的接口

,如config配置,日志配置和监控配置。目录规划设计如下:

基于Maxwell的MySQL数据传输服务整体设计方法教程

可以在这个基础上进行服务的相应扩展。

Maxwell的基础配置依赖于client_id

ü client_id元数据命名

dts_[idc]_[maxwell_ip]_[maxwell_code]

如Maxwell部署在服务器 121.240,

Maxwell001为业务编码,可以映射到相应的数据库服务(如Slave),为了方便标识和 解析,不允许包含特殊符号,如下划线等

命名示例则为:dts_xxxx_121_240_maxwell001

对于实现细节可以整理为如下的部分:

1)支持根据模板配置化生成相应的maxwell配置文件,配置文件命名以client_id元数据命名,格式为:dts_[idc]_[maxwell_ip]_[maxwell_code].properties,配置文件部署在app_config目录下。

如Maxwell部署在服务器 130.200,

Maxwell001为业务编码,可以映射到相应的数据库服务(如Slave),为了方便标识和 解析,不允许包含特殊符号,如下划线等

命名示例则为:dts_xxxx_130_200_maxwell001.properties

2)对于Maxwell基础信息的配置,因为基于client_id,不便于显示源端的关联关系,该配置信息的管理需要统一在maxwell档案库中维护。

3)基础配置信息包括源端服务信息,源服务端口,复制账户信息,client_id,归属maxwell应用服务器,监控端口,过滤列表,bootstrap_type(sync,async),  kafka配置信息等

4)基础配置管理需要实现本地前端

补充:

完成Maxwell服务列表和服务配置的平台化管理,后端均为API实现

如果任务配置发生变更时,服务列表和详情列表为一对多的关系,即需要保留已有的配置文件记录,然后将原记录状态置为失效,使得在出现异常回退的时候,该任务依然可以保证服务可用。

2.3. 同步对象列表变更

同步对象列表为数据传输中的重点管理对象,需要实现如下的功能:

1)对已有的maxwell服务新增表时,需要在已有的maxwell服务下进行扩展,修改同步对象列表,列表的修改模式为追加,暂不支持修改,删除等其他模式。

2)修改同步列表后,需要对maxwell服务进行重新启动,需要保证启动过程相对是平滑可控。

3)如同步列表刷新失败,需要能够快速回退,快速恢复数据传输服务。

4)配置文件版本管理和归档,对象变更前,需要对配置文件先做备份,并规范备份文件命名。

补充:

主要实现同步对象的修改和管理,添加相应的正则配置,调用明细管理的方法/接口

2.4. 服务管理

能够实现maxwell的启停管理功能,包含三个子选项;start,stop,restart

通过API模式进行服务状态检查,目前可以复用已有的开放接口

2.5. 服务自启动

在传输链路中,如果因为源端服务异常,maxwell侧异常或者后端传输服务异常,会导致Maxwell服务异常终止,需要通过探测的模式进行检查复核,确认后重新拉起服务,保证maxwell服务的持续性。

补充:

开发相应的脚本,能够进行服务状态检测,并复用已有监控的API进行数据传输状态的检测。

3.6. 监控报警

监控报警为maxwell基础保障功能,需要完成对Maxwell服务的数据传输监控,解析binlog的吞吐量,下推Kafka的吞吐量等,并对数据传输异常,服务异常等异常场景进行报警提示。

补充:

配置相应的报警明细项目,设定阈值,进行报警配置

到此,关于“基于Maxwell的MySQL数据传输服务整体设计方法教程”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/42846.html

(0)

相关推荐

  • 多姿多彩是什么意思,我们的生活多姿多彩是什么意思

    技术多姿多彩是什么意思,我们的生活多姿多彩是什么意思我一直在问,怎么才能使自己变的更加有趣,反复求索,综合各方的意见,总结出了让自己更加有趣的秘方-过多姿多彩的生活多姿多彩是什么意思。首先心态,健康,乐观的积极心态是使自

    生活 2021年10月28日
  • html5的特性有哪些

    技术html5的特性有哪些本篇内容介绍了“html5的特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    攻略 2021年12月1日
  • 抖音能刷粉吗,便宜刷抖音网站?

    技术抖音能刷粉吗,便宜刷抖音网站?首先,抖音刷粉是不违规的。这在行业内已经属于潜规则了。很多网红公司都在使用这类辅助工具。目前这类辅助工具,不违规,也不违法。可以放心使用。但是需要找到靠谱的代刷网,否则很可能被坑钱财。

    测评 2021年10月19日
  • 配置化+Serverless 开发个人博客「附源码」

    技术配置化+Serverless 开发个人博客「附源码」 配置化+Serverless 开发个人博客「附源码」高清原画 链接: https://pan.baidu.com/s/1d6YONkCi4u7T

    礼包 2021年11月5日
  • javascript中怎么实现一个基于DOM的模板引擎

    技术javascript中怎么实现一个基于DOM的模板引擎本篇内容主要讲解“javascript中怎么实现一个基于DOM的模板引擎”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习

    攻略 2021年11月15日
  • nginx.pid打开失败怎么办

    技术nginx.pid打开失败怎么办本篇内容介绍了“nginx.pid打开失败怎么办”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年12月11日