宁泽林_NiZerin - 互联网技术博客

  • PHP
  • Go
  • Java
  • Rust
  • Python
  • 交流群
  • 关于我
  • 留言版
  1. 首页
  2. Go
  3. 正文

Go 语言开发的分布式 MySQL Binlog 存储系统

2019年1月4日 3375点热度 0人点赞 2条评论

kingbus简介

kingbus是一个基于raft强一致协议实现的分布式MySQL binlog 存储系统。它能够充当一个MySQL Slave从真正的Master上同步binglog,并存储在分布式集群中;同时又充当一个MySQL Master将集群中的binlog 同步给其他Slave。kingbus具有如下特性:

  • 兼容MySQL 复制协议,通过Gtid方式同步Master上的binlog,同时支持slave通过Gtid方式从kingbus拉取binlog。
  • 跨地域数据复制,kingbus通过raft协议支持跨地域间的数据复制。写入到集群的binlog数据在多个节点间保证强一致,并保证binlog顺序与master上完全一致。
  • 高可用,由于kingbus是构建在Raft强一致协议之上,能够实现集群中过半数节点存活的情况下,整个binlog拉取和推送服务高可用。

为什么需要kingbus?

  1. 降低Master的负载和网络传输流量。在一主多从的复制拓扑中,Master需要发送binlog到各个slave,如果slave过多的话,网络流量很有可能达到Master的网卡上限,同时Master上负载也会过高。
  2. 简化主从复制拓扑,不再需要多级复制。
  3. 简化Master Failover流程,只需将其中的一个Slave提升为Master,并将kingbus指向新的Master,其他slave复制拓扑保持不变。
  4. 减少Master上的binlog存储空间,将binlog都存储到kingbus中。
  5. 支持异构复制。其他异构复制组件可以连接在kingbus上。

更多使用场景,可以参考:

  • Binlog server at booking
  • Binlog server at facebook

Quick Start

Read the Quick Start

License

kingbus采用Apache 2.0协议,相关协议请参看目录

文档

1.Kingbus 管理API说明

2.通过docker-compose创建kingbus集群

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: go
最后更新:2019年1月4日

NiZerin

博主已经躺平了,后面很少会更新博客。

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 阿诺

    123

    2019年1月13日
    回复
  • 烟花易冷

    棒棒哒

    2019年1月13日
    回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    分类
    • Angular
    • CSS3
    • docker
    • Flutter
    • git
    • Go
    • H5
    • Java
    • JavaScript
    • Laravel
    • linux
    • Node.js
    • PHP
    • Python
    • React
    • redis
    • Vue.js
    • windows
    • WordPress
    • 交流
    • 小程序
    • 工具
    • 网站公告
    标签聚合
    go php javascript translations vue wordpress flutter laravel
    友情链接
    • PHP函数字典
    • 宝塔运维特惠
    • 科学上网
    • 阿里云特惠

    COPYRIGHT © 2021 nizer.in. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang