braft提供了一系列API用来控制复制主或者具体节点, 可以选择在程序了调用API或者使用braft_cli来给节点发远程控制命令
API
// Add a new peer into the replicating group which consists of |conf|.// Returns OK on success, error information otherwise.butil::Status add_peer(const GroupId& group_id, const Configuration& conf,const PeerId& peer_id, const CliOptions& options);// Remove a peer from the replicating group which consists of |conf|.// Returns OK on success, error information otherwise.butil::Status remove_peer(const GroupId& group_id, const Configuration& conf,const PeerId& peer_id, const CliOptions& options);// Gracefully change the peers of the replication group.butil::Status change_peers(const GroupId& group_id, const Configuration& conf,const Configuration& new_peers,const CliOptions& options);// Transfer the leader of the replication group to the target peerbutil::Status transfer_leader(const GroupId& group_id, const Configuration& conf,const PeerId& peer, const CliOptions& options);// Reset the peer set of the target peerbutil::Status reset_peer(const GroupId& group_id, const PeerId& peer_id,const Configuration& new_conf,const CliOptions& options);// Ask the peer to dump a snapshot immediately.butil::Status snapshot(const GroupId& group_id, const PeerId& peer_id,const CliOptions& options);
braft_cli
braft_cli提供了命令行工具, 作用和API类似
braft_cli: Usage: braft_cli [Command] [OPTIONS...]Command:add_peer --group=$group_id --peer=$adding_peer --conf=$current_confremove_peer --group=$group_id --peer=$removing_peer --conf=$current_confchange_peers --group=$group_id --conf=$current_conf --new_peers=$new_peersreset_peer --group=$group_id --peer==$target_peer --new_peers=$new_peerssnapshot --group=$group_id --peer=$target_peertransfer_leader --group=$group_id --peer=$target_leader --conf=$current_conf
