gravity 安装部署
gravity是由膜拜公司自主研發的不同數據庫間數據同步工具。
官方介紹:https://github.com/moiot/gravity/blob/master/README-cn.md
Gravity 是一款數據復制組件,提供全量、增量數據同步,以及向消息隊列發布數據更新。
DRC 的設計目標是:
- 支持多種數據源和目標的,可靈活定制的數據復制組件
- 支持基于 Kubernetes 的 PaaS 平臺,簡化運維任務
使用場景
- 大數據總線:發送 MySQL Binlog,Mongo Oplog 的數據變更到 kafka 供下游消費
- 單向數據同步:MySQL --> MySQL 的全量、增量同步
- 雙向數據同步:MySQL <--> MySQL 的雙向增量同步,同步過程中可以防止循環復制
- 分庫分表到合庫的同步:MySQL 分庫分表 --> 合庫的同步,可以指定源表和目標表的對應關系
- 在線數據變換:同步過程中,可支持對進行數據變換
?
一、安裝配置golang
golang 針對中國用戶有專門的網站:
https://golang.google.cn/dl/
下載文件:
# wget https://dl.google.com/go/go1.12.linux-amd64.tar.gz
解壓文件:
# tar -xzvf go1.12.linux-amd64.tar.gz -C /usr/local/
設置環境變量:
# vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
# source??/etc/profile
版本驗證:
# go version
go version go1.12 linux/amd64
?
二、安裝配置gravity
1.前提條件:安裝部署好golang的環境變量:
2.下載gravity的代碼:
下載地址:https://github.com/moiot/gravity/releases
選擇需要的版本
# wget?https://github.com/moiot/gravity/archive/v0.9.61.tar.gz
注釋:
由于還是老的模式組織目錄結構,需要把項目放在 ${GOPATH}/src/github.com/moiot/
?
3.由于目前的版本不支持go module功能需要解壓到 指定的目錄 go/src目錄:
# mkdir -p /usr/local/go/src/github.com/moiot/
# tar -xzvf v0.9.25.tar.gz??-C /usr/local/go/src/github.com/moiot/
# mv gravity-0.9.25/ gravity
或者直接clone 源代碼:
? ? ? # git clone https://github.com/moiot/gravity.git
#export GOPROXY=https://goproxy.io
# make
#export GOPROXY=
?
##查看幫助信息:
# ./bin/gravity??--help -L warn
Usage of gravity:
??-L string
????????log level: debug, info, warn, error, fatal (default 'info') (default "info")
??-V????print version and exit
??-config string
????????path to config file
??-http-addr string
????????http-addr (default ":8080")
??-log-file string
????????log file path
??-log-format string
????????log format (default "json")
?
##版本查詢:
# ./bin/gravity -V
Release Version (gravity): 0.0.1+git.
Git Commit Hash:
Git Branch:
UTC Build Time: 2019-07-26 02:58:06
?
三、問題解決
#執行make命令時,由于一些依賴包需要翻墻才能下載到,所以go在這里自動下載相應的包或依賴包時,會出現timeout問題,無法下載或加載依賴包。。最終導致make失敗
go: golang.org/x/net@v0.0.0-20190311183353-d8887717615a: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
go: google.golang.org/grpc@v1.19.0: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
go: golang.org/x/sys@v0.0.0-20180905080454-ebe1bf3edb33: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
go: finding github.com/pingcap/parser v0.0.0-20190118120648-5958b6fcdb2d
go: golang.org/x/crypto@v0.0.0-20180904163835-0709b304e793: unrecognized import path "golang.org/x/crypto" (https fetch: Get https://golang.org/x/crypto?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
解決方法:
設置以下環境變量:
export GOPROXY=https://goproxy.io
然后在執行make命令。
?
原因:
設置了GOPROXY環境變量,下載源代碼時將會通過這個環境變量設置的代理地址,而不再是以前的直接從代碼庫下載。 https://goproxy.io是官方提供公用的代理服務。
通過設置該環境變量:export GOPROXY=https://goproxy.io 后即可正常下載墻外的源碼包了:
也可以通過置空這個環境變量來關閉,export GOPROXY=
需要Go version >= 1.11。
?
感謝:https://www.cnblogs.com/shockerli/p/go-get-golang-org-x-solution.html
利用gravity實驗MySQL->MySQL和MySQL->TiDB數據同步:https://blog.csdn.net/LiuHuan_study/article/details/97394878
感謝:
https://blog.csdn.net/vkingnew/article/details/87932903
https://blog.csdn.net/vkingnew/article/details/88118688
?
總結
以上是生活随笔為你收集整理的gravity 安装部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MRC和ARC
- 下一篇: 什么是缓冲区(buffer),什么是缓存