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

源码下载 (你的点击 star 就是对 Bifrost 最大的支持!!!): Github Gitee

为了解决表同步设置并行同步,共用一个Binlog解析线程,因为某一个同步出错等原因造成的 Binlog 解析阻塞的情况.

 Bifrost v1.2.1 版本开始 , Bifrost 新增了一个文件队列功能,在表同步出现阻塞的时候,自动启动文件队列,并不影响 Binlog 解析,也不影响其他表数据同步。

简单的说 只要所有同步都足够快的时候, 就用的纯内存队列,只要有一个同步出错了,为了保证自己出错,不影响 其他表同步,当前同步线程,就自动启用的一个文件队列. 

文件队列,是在同步出现问题,跟不上Binlog解析速度的时候 ,自动启动的,不需要人为界面点击启动.当前 管理系统界面 点提供了方法 让用户点击强制启动!

文件队列配置

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

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

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

假如配置 file_queue_usable = false ,不管什么情况,都不会启用文件队列

默认情况下,文件队列是在 5000ms 内 内存队列连续被写满10次,自动启动,不需要人为在管理界面任何操作

文件队列,是按表的同步配置为单位启动的,也就是说,假如一个表配置了 10 个同步, 其中第一个配置同步是同步到 Redis, 在这个同步到 Redis 的同步中同步慢了,出现了内存队列阻塞的情况下,则启用一个文件队列,用于缓冲 同步到当前这个表同步到 Redis

04-29 07:07