zoukankan      html  css  js  c++  java
  • 架构简介gravity架构简介

    架构简介

    单进程架构

    单进程的 Gravity 采用基于插件的微内核架构,由各个插件围绕系统里的 core.Msg 结构实现输入到输出的整个流程。

    各个插件有各自独立的配置选项。

    2.0 Arch Image

    如上图所示,系统总共由这几个插件组成:

    • Input 用来适配各种数据源,比如 MySQL 的 Binlog 并生成 core.Msg

    • Filter 用来对 Input 所生成的数据流做数据变换操作,比如过滤某些数据,重命名某些列,对列加密

    • Output 用来将数据写入目标,比如 Kafka, MySQL,Output 写入目标时,使用 Router 所定义的路由规则

    • Scheduler 用来对 Input 生成的数据流调度,并使用 Output 写入目标;Scheduler 定义了当前系统支持的一致性特性(当前默认的 Scheduler 支持同一行数据的修改有序

    • Matcher 用来匹配 Input 生成的数据。FilterRouter 使用 Matcher 匹配数据

    开发人员可以开发以上的几个插件类型,实现特定的需求。

    core.Msg 的定义如下

    
    type DDLMsg struct {
    	Statement string
    }
    
    type DMLMsg struct {
    	Operation DMLOp
    	Data      map[string]interface{}
    	Old       map[string]interface{}
    	Pks       map[string]interface{}
    	PkColumns []string
    }
    
    type Msg struct {
    	Type      MsgType
    	Host      string
    	Database  string
    	Table     string
    	Timestamp time.Time
    
    	DdlMsg *DDLMsg
    	DmlMsg *DMLMsg
    	...
    }
    

    集群架构

    集群版本的 Gravity 原生支持 Kubernetes 上的集群部署,请查看这里

    集群版本 Gravity 提供 Rest API 创建创建数据同步任务,汇报状态。自带 Web 界面 (Gravity Admin) 管理各个任务。

  • 相关阅读:
    省级联动(使用ajax实现)
    java学习之 反射
    自己写的代码生成器
    java中关于StackTraceElement的使用
    在Java中判断数组中包含某个元素的几种方式的比较
    android PopupWindow 点击外面消失
    android获取textview的行数
    多线程关于腾讯笔试题
    FrameLayout的点击问题
    自定义SnackBar
  • 原文地址:https://www.cnblogs.com/carry00/p/14095441.html
Copyright © 2011-2022 走看看