Skip to content

brokercap/Bifrost

master
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Sep 18, 2022
Sep 18, 2022
etc
Sep 11, 2020
Jan 11, 2021
Apr 12, 2018
Oct 9, 2019
Sep 18, 2022
Sep 18, 2022
Oct 10, 2019
Sep 18, 2022
Mar 28, 2019
Nov 12, 2020
Mar 8, 2019

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

Gitter Build Status License

English

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

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


WIKI : https://wiki.xbifrost.com


Bifrost 特点

  • 支持 MySQL,MariaDB 所有存储类型

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

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

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

  • 一个Binlog解析线程,多个目标库并行同步

  • 宕机后重启自动恢复配置,位点精确控制

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

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

  • MySQL,ClickHouse 插件支持 DDL 同步

  • 简单即可实现插件开发

源码下载

Github , Gitee

你的点击 star 就是对 Bifrost 最大的支持!!!

Bifrost在线界面体验

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

用户名: Bifrost

密码 : Bifrost123

image

Bifrsot Diagram

image

MySQL 版本(经过测试)

  • 5.1.73

  • 5.5.42

  • 5.6.36

  • 5.7.18

  • 8.0.21

安装

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

make install prefix=./target
二进制文件安装
wget https://github.com/brokercap/Bifrost/releases/download/v1.8.7-release/bifrost_v1.8.7-release_Linux-amd64-bin.tar.gz

tar -zxvf bifrost_v1.8.7-release_Linux-amd64-bin.tar.gz

cd bifrost_v1.8.7-release_Linux-amd64-bin/bin && chmod a+x ./Bifrost*
启动
./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 /etc/localtime:/etc/localtime -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

#是否开启文件队列功能 true|false
file_queue_usable=true

#统计是否启文件队列的时间,单位毫秒
file_queue_usable_count_time_diff=5000

#file_queue_usable_count_time_diff 时间内内存队列被挤满的次数
file_queue_usable_count=10

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

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

#用于区别实例的名字
cluster_name=bifrostTestClusterName

#是否开启文件队列功能 true|false
file_queue_usable=true

#统计是否启文件队列的时间,单位毫秒
file_queue_usable_count_time_diff=5000

#file_queue_usable_count_time_diff 时间内内存队列被挤满的次数
file_queue_usable_count=10

#在没有数据的情况下,间隔多久提交一次插件,单位 秒
plugin_commit_timeout=5

#在同步出错的情况下,每2次重试之后 间隔多久再重试 ,单位 秒
plugin_sync_retry_time=5
生成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/v8
  • github.com/syndtr/goleveldb/leveldb
  • github.com/ClickHouse/clickhouse-go
  • github.com/olivere/elastic/v7

QQ群号: 70331601

qq群

捐赠