Kvrocks Controller 在半年之后终于发布了 1.1.0 版本,其中包含了 10 位贡献者的 40 次提交。感谢每一位社区贡献者在背后默默的努力。
Kvrcoks Controller 主要作为 Kvrocks 集群元数据的服务,除了提供集群变更功能之外,也提供对于集群节点的健康检查和高可用切换的能力。
该版本中带来了几个令人兴奋的功能,包含:
基于 ETCD Raft 实现了内置存储能力,可在不依赖外部存储的方式来运行 Kvrocks Controller 服务,极大简化部署和运维的复杂度;
支持使用 Hashicorp Consul 作为存储,用户可以选择使用 Consul 来替换 ETCD 或者 Zookeeper;
发布了第一个版本的 Web UI,仅具备基础管理功能,未来还会持续迭代。
欢迎大家使用新版本,如有任何问题或者建议在 GitHub 上反馈。
基于 Raft 的内置存储
使用方式上只需要通过调整配置,将存储类型设置为 raft
并配置对应数据存储目录。
例如:
storage_type: raft
raft:
id:1
data_dir:"/data/kvrocks/raft/1"
cluster_state:"new"
peers:
-"http://127.0.0.1:6001"
-"http://127.0.0.1:6002"
-"http://127.0.0.1:6003"
因为配置实例 ID 为 1
,Kvrocks Controller 会找到 peers
中的第一个地址并监听 6001
端口,用来接收其他节点的请求。同时,也可以通过 HTTP API 来添加或者删除节点,具体可参考: Add/Remove a raft peer node[1]
注意,第一次启动新集群时,需要将 cluster_state
设置为 new
,新节点加入老集群将 cluster_state
设置为 existing
。
最后
除此之外,我们还修复了一些 bug 和优化了一些功能,详情请查看 Release Note[2]
Add/Remove a raft peer node: https://github.com/apache/kvrocks-controller?tab=readme-ov-file#addremove-a-raft-peer-node
[2]Release Note: https://github.com/apache/kvrocks-controller/releases/tag/v1.1.0




