Kingbus is a distributed MySQL binlog store based on raft. Kingbus can act as a slave to the real master and as a master to the slaves in the same way as an intermediate MySQL master does. Kingbus has the following key features:
MySQL replication protocol compatibility, pull the binlog files from the master through gtid mode, and push the binlog file to slave through gtid mode in the same way.
Geo-Replication, kingbus uses Raft to support Geo-Replication. The binlog data written to the cluster is guaranteed to be consistent between multiple nodes, and the order of binlog event is exactly the same as that on the master.
High availability, your mysql binlog replication is always on and continuously available with kingbus.
In a traditional MySQL replication setup a single master server is created and a set of slaves of MySQL servers are configured to pull the binlog files from the master, putting a lot of load on the master.
Introducing a layer between the master server and the slave servers can reduce the load on the master by only serving kingbus instead of all the slaves.
The slaves will only need to be aware of kingbus and not the real master server. Removing the requirement for the slaves to have knowledge of the master also simplifies the process of replacing a failed master within a replication environment.
Kingbus allows us to horizontally scale our slaves without fear of overloading the network interface of the master
Kingbus can also be used to avoide deep nested replication on remote sites, with kingbus you don't need e deeply nested replication.
The size of the binlog storage space on the Master can be reduced, and store the binlog in kingbus.
Support MYSQL database heterogeneous log based replication. Other heterogeneous replication components can be connected to the kingbus, such as canal.
For more usage scenarios of binlog server, please refer:
Booking: blog
Facebook: binlog server at Facebook
Google: mysql-ripple
Read the Quick Start
1.Kingbus management API introduction
2.Start a kingbus cluster with docker-compose
Kingbus is under the Apache 2.0 license. See the LICENSES file for details.
序 本文主要研究一下kingbus的binlog_server_handler.go StartBinlogServer kingbus/api/binlog_server_handler.go //StartBinlogServer implements start a binlog server func (h *BinlogServerHandler) StartBinlogServer(e
1.背景 kingbus 是一个基于 raft 强一致协议实现的分布式 MySQL binlog 存储系统。它能够充当一个 MySQL Slave 从真正的 Master 上同步 binglog,并存储在分布式集群中;同时又充当一个 MySQL Master 将集群中的 binlog 同步给其他 Slave。这就需要 kingbus 具备伪装成 MySQL Master 角色,给其他 Slave
01 背景 kingbus是一个基于raft强一致协议实现的分布式MySQL binlog 存储系统。它能够充当一个MySQL Slave从真正的Master上同步binglog,并存储在分布式集群中;同时又充当一个MySQL Master将集群中的binlog 同步给其他Slave。这就需要kingbus具备伪装成MySQL Master角色,给其他Slave发送binlog的能力。 网络上有很