Skip to content
Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB等服务的异构中间件
Go HTML JavaScript Shell TSQL PHP
Branch: master
Clone or download
Latest commit ec48f94 Dec 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates May 13, 2019
Bristol 允许 * 库规则过滤 Oct 31, 2019
Dockerfile/centos docker.sh release_build Oct 9, 2019
config v1.1.0-release Dec 8, 2019
etc 新增administrator及monitor用户组 Apr 12, 2019
manager pprof访问需要先登入才能访问 Nov 23, 2019
plugin v1.1.0 Dec 8, 2019
sdk 插件新增指定默认参数 setPluginParamDefault 方法 Nov 12, 2019
server redis 配置存储去掉了一个重复的 bifrost 字符串 Dec 8, 2019
test test insert Nov 8, 2019
vendor vendor更新 Dec 2, 2019
xdb
.travis.yml
Bifrost-server fix Bifrost-server can't start on Ubuntu System Sep 30, 2019
Bifrost.go pprof访问需要先登入才能访问 Nov 23, 2019
CONTRIBUTING.md Update CONTRIBUTING.md May 5, 2018
LICENSE commit Apr 12, 2018
Makefile build update Oct 9, 2019
README.MD README.MD Dec 8, 2019
bifrost.png bifrost.png Oct 10, 2019
build.sh v1.1.0-beta.20 Oct 27, 2019
changelog.txt v1.1.0-release Dec 8, 2019
diagram.png README.MD Mar 28, 2019
docker.sh
go.mod clickhouse 插件包更新 Dec 2, 2019
go.sum clickhouse 插件包更新 Dec 2, 2019
qq.jpg qq二维码 Mar 8, 2019

README.MD

Bifrost ---- 面向生产环境的 MySQL 同步到Redis,MongoDB等服务的异构中间件

Build Status License

漫威里的彩虹桥可以将 雷神 送到 阿斯加德 和 地球

而这个 Bifrost 可以将 你 MySQL 里的数据,实时的同步到 :


WIKI : http://wiki.xbifrost.com


Bifrost 特点

  • 支持 MySQL 所有存储类型

  • 界面化动态灵活配置不同的数据表及目标库

  • 多数据源,多种目标库支持

  • 同时支持 增量全量 数据同步

  • 宕机后重启自动恢复配置

  • 支持自定义插件开发,动态加载

  • 支持 Email 及 微信企业号等监控报警功能

  • 提供第三方监控平台访问接口(Http Basic验证)

  • 支持对 Null 的解析,但对 Null 的支持程度,取决于插件的支持,如果有 Null 数据,请查阅 相关插件文档

Bifrost在线界面体验

http://www.xbifrost.com/demo/goto.html

用户名: Bifrost

密码 : Bifrost123

image

Bifrsot Diagram

image

Bifrost 还不足的地方

  • 支持批量刷数据的插件,在数据同步异常的情况下,不支持错过当前数据同步功能,例如: ClickHouse,Kafka

  • datetime,timestamp 解析还不支持精确到毫秒,毫秒部分将会自动被丢弃

MySQL 版本(经过测试)

  • 5.1.73

  • 5.5.42

  • 5.6.36

  • 5.7.18

  • 8.0.11 (用户密码验证需要采用 mysql_native_password 方式)

安装

编译
git clone https://github.com/brokercap/Bifrost.git

make install prefix=./target
二进制文件安装
wget https://github.com/brokercap/Bifrost/releases/download/v1.1.x-release/linux.zip

unzip linux.zip

cd linux
启动
./Bifrost-server start
停止
./Bifrost-server stop
界面管理

https://127.0.0.1:21036

用户名和密码是在 etc/Bifrost.ini 配置文件中配置的

默认用户名和密码

用户名:Bifrost

密码:Bifrost123

Docker启动
docker pull jc3wish/bifrost

mkdir -p /data/BifrostData

docker run -d -p21036:21036 -v /data/BifrostData:/linux/data jc3wish/bifrost
配置
vim Bifrost.ini

[user]
#登入用户名和密码
#用户名在前,= 号后面是密码
Bifrost=Bifrost123
BifrostMonitor=Bifrost123

[groups]
#administrator 管理人员可以添加删除等操作
#monitor 只能查看数据
Bifrost=administrator
BifrostMonitor=monitor

[Bifrostd]
#log写到入的文件夹,默认为启动文件所在文件夹下的logs目录
#log_dir=/data/log/

#监听端口,默认 0.0.0.0:21036
listen=0.0.0.0:21036

#通过界面配置的信息保存文件夹,默认为启动文件所在文件夹下的data目录
data_dir=./

#设置同步给第三方服务的队列大小,默认5000
toserver_queue_size=10000

#通道队列的大小,默认1000
channel_queue_size=1000

#是否支持动态加plugin so 插件,默认为false
#这个参数只在 linux 下有效,其他平台全部为false
dynamic_plugin=false

#是否支持https
tls=true

#server.key 及 server.crt 相对于 Bifrost 的路径,也可以填绝对路径
tls_key_file=./etc/server.key
tls_crt_file=./etc/server.crt

#采用什么方式存储,默认文件方式
meta_storage_type=redis

#存储介质的连接地址
meta_storage_path=127.0.0.1:6379

#用于区别实例的名字
cluster_name=bifrostTestClusterName
生成https证书

参考证书生成

感谢相关依懒包提供者

  • github.com/gmallard/stompngo
  • github.com/hprose/hprose-golang
  • github.com/Shopify/sarama
  • github.com/bradfitz/gomemcache/memcache
  • gopkg.in/mgo.v2
  • github.com/streadway/amqp
  • github.com/go-redis/redis
  • github.com/syndtr/goleveldb/leveldb
  • github.com/ClickHouse/clickhouse-go

QQ群号: 70331601

qq群

You can’t perform that action at this time.