gravity 安装部署
gravity是由膜拜公司自主研發(fā)的不同數(shù)據(jù)庫間數(shù)據(jù)同步工具。
官方介紹:https://github.com/moiot/gravity/blob/master/README-cn.md
Gravity 是一款數(shù)據(jù)復(fù)制組件,提供全量、增量數(shù)據(jù)同步,以及向消息隊(duì)列發(fā)布數(shù)據(jù)更新。
DRC 的設(shè)計(jì)目標(biāo)是:
- 支持多種數(shù)據(jù)源和目標(biāo)的,可靈活定制的數(shù)據(jù)復(fù)制組件
- 支持基于 Kubernetes 的 PaaS 平臺(tái),簡化運(yùn)維任務(wù)
使用場(chǎng)景
- 大數(shù)據(jù)總線:發(fā)送 MySQL Binlog,Mongo Oplog 的數(shù)據(jù)變更到 kafka 供下游消費(fèi)
- 單向數(shù)據(jù)同步:MySQL --> MySQL 的全量、增量同步
- 雙向數(shù)據(jù)同步:MySQL <--> MySQL 的雙向增量同步,同步過程中可以防止循環(huán)復(fù)制
- 分庫分表到合庫的同步:MySQL 分庫分表 --> 合庫的同步,可以指定源表和目標(biāo)表的對(duì)應(yīng)關(guān)系
- 在線數(shù)據(jù)變換:同步過程中,可支持對(duì)進(jìn)行數(shù)據(jù)變換
?
一、安裝配置golang
golang 針對(duì)中國用戶有專門的網(wǎng)站:
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/
設(shè)置環(huán)境變量:
# vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
# source??/etc/profile
版本驗(yàn)證:
# go version
go version go1.12 linux/amd64
?
二、安裝配置gravity
1.前提條件:安裝部署好golang的環(huán)境變量:
2.下載gravity的代碼:
下載地址:https://github.com/moiot/gravity/releases
選擇需要的版本
# wget?https://github.com/moiot/gravity/archive/v0.9.61.tar.gz
注釋:
由于還是老的模式組織目錄結(jié)構(gòu),需要把項(xiàng)目放在 ${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
?
三、問題解決
#執(zhí)行make命令時(shí),由于一些依賴包需要翻墻才能下載到,所以go在這里自動(dòng)下載相應(yīng)的包或依賴包時(shí),會(huì)出現(xiàn)timeout問題,無法下載或加載依賴包。。最終導(dǎo)致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)
解決方法:
設(shè)置以下環(huán)境變量:
export GOPROXY=https://goproxy.io
然后在執(zhí)行make命令。
?
原因:
設(shè)置了GOPROXY環(huán)境變量,下載源代碼時(shí)將會(huì)通過這個(gè)環(huán)境變量設(shè)置的代理地址,而不再是以前的直接從代碼庫下載。 https://goproxy.io是官方提供公用的代理服務(wù)。
通過設(shè)置該環(huán)境變量:export GOPROXY=https://goproxy.io 后即可正常下載墻外的源碼包了:
也可以通過置空這個(gè)環(huán)境變量來關(guān)閉,export GOPROXY=
需要Go version >= 1.11。
?
感謝:https://www.cnblogs.com/shockerli/p/go-get-golang-org-x-solution.html
利用gravity實(shí)驗(yàn)MySQL->MySQL和MySQL->TiDB數(shù)據(jù)同步: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
?
總結(jié)
以上是生活随笔為你收集整理的gravity 安装部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MRC和ARC
- 下一篇: 什么是缓冲区(buffer),什么是缓存