zoukankan      html  css  js  c++  java
  • gravity使用教程03

    下面以本地 MySQL 实例的同步和数据订阅为例说明 gravity 使用方法。

    MySQL 环境准备

    参考 MySQL 环境准备 准备一下 MySQL 环境。

    MySQL 源端和目标端创建需要同步的表

    CREATE TABLE `test`.`test_source_table` (
      `id` int(11),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    
    CREATE TABLE `test`.`test_target_table` (
      `id` int(11),
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    

    编译(可选,可以直接用 docker)

    首先,配置好 Go 语言环境 并编译

    git clone https://github.com/moiot/gravity.git
    
    cd gravity && make
    

    Gravity 使用了 go mod,中国大陆地区用户建议设置 export GOPROXY=https://goproxy.io 或其他代理。
    将代码克隆到 GOPATH 路径下的用户需要设置 export GO111MODULE=on

    MySQL 到 MySQL 同步

    创建如下配置文件 config.toml

    # name 必填
    name = "mysql2mysqlDemo"
    
    # 内部用于保存位点、心跳等事项的库名,默认为 _gravity
    internal-db-name = "_gravity"
    
    #
    # Input 插件的定义,此处定义使用 mysql
    #
    [input]
    type = "mysql"
    mode = "stream"
    [input.config.source]
    host = "127.0.0.1"
    username = "root"
    password = ""
    port = 3306
    
    #
    # Output 插件的定义,此处使用 mysql
    #
    [output]
    type = "mysql"
    [output.config.target]
    host = "127.0.0.1"
    username = "root"
    password = ""
    port = 3306
    
    # 路由规则的定义
    [[output.config.routes]]
    match-schema = "test"
    match-table = "test_source_table"
    target-schema = "test"
    target-table = "test_target_table"
    

    MySQL 到 Kafka

    创建如下配置文件 config.toml

    name = "mysql2kafkaDemo"
    
    #
    # Input 插件的定义,此处定义使用 mysql
    #
    [input]
    type = "mysql"
    mode = "stream"
    [input.config.source]
    host = "127.0.0.1"
    username = "root"
    password = ""
    port = 3306
    
    #
    # Output 插件的定义,此处使用 mysql
    #
    [output]
    type = "async-kafka"
    [output.config.kafka-global-config]
    broker-addrs = ["127.0.0.1:9092"]
    mode = "async"
    
    # kafka 路由的定义
    [[output.config.routes]]
    match-schema = "test"
    match-table = "test_source_table"
    dml-topic = "test"
    

    启动 gravity

    从编译完的程序

    bin/gravity -config mysql2mysql.toml
    

    从 docker

    docker run -v ${PWD}/config.toml:/etc/gravity/config.toml -d --net=host moiot/gravity:latest
    

    监控

    Gravity 使用 PrometheusGrafana 实现监控功能。
    在运行端口(默认8080)上提供了 Prometheus 标准的指标抓取路径/metrics
    在源码路径deploy/grafana下提供了 Grafana dashboard 供导入。

  • 相关阅读:
    python super()
    git用法小结(1)--建立远程仓库
    git用法小结(1)--建立远程仓库
    Linux下多线程查看工具(pstree、ps、pstack)
    JAVA操作Oracle数据库中的事务
    MyEclipse 2013优化配置【转】
    C语言多线程编程 死锁解析
    在linux终端执行clear或top命令时出现:'xterm' unknown terminal type的错误
    Linux中获取本机网络信息的几个函数及应用
    基于内存的通信之一 “内核共享消息队列”
  • 原文地址:https://www.cnblogs.com/carry00/p/14095442.html
Copyright © 2011-2022 走看看