# airy-raft **Repository Path**: open-byte/airy-raft ## Basic Information - **Project Name**: airy-raft - **Description**: airy-raft是一个基于Java实现的轻量级RAFT底层框架,您可以利用其较高的负载能力、较低的延迟、丰富的接口、清晰的实现逻辑去完成一款依赖RAFT协议的框架或软件。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-08-31 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
airy-raft logo
#### 介绍 airy-raft是一个基于Java实现的轻量级RAFT底层框架,您可以利用其较高的负载能力、较低的延迟、丰富的接口、清晰的实现逻辑去完成一款依赖RAFT协议的框架或软件,比如分布式缓存、消息队列、注册中心等分布式中间件,十分欢迎您来使用、提出issue和意见建议。 #### 什么是RAFT? Raft协议是一种用于分布式系统的一致性算法,旨在通过简化Paxos算法来实现更易理解和实现的分布式一致性。 ![输入图片说明](docs/213558f2-0043-4aa2-8b16-73fb9bcaff54.png) 您可以通过相关论文来了解Raft协议: - [Raft论文](http://https://docs.qq.com/doc/DY0VxSkVGWHFYSlZJ) #### 您可以用来做什么?
airy-raft logo
#### 当前功能特性 1. Leader快速选举、主动变更,保证高可用 2. 日志高速复制、压缩、恢复 3. 快照生成、恢复,支持按需配置与定时生成 4. 节点管理,支持动态增减节点 5. 容忍一定程度的多数派故障 6. 容忍网络分区导致的节点失联、节点故障 7. 日志一致性的最终保证 8. 支持阻塞同步和异步发送日志 9. 支持批量发送日志,提升发送效率 #### 版本更新说明 - v2.1-beta.2 - 修复日志在发送过程中的索引不匹配问题 - 修复findLeader()会出现集群刚启动时的leader扰动问题 - WalStore使用文件存储来代替内存存储, 修复节点重启时wal日志容易丢失的问题 - 完善各个功能 - [更多版本更新历史](./docs/Versions.md) #### 项目结构 | 模块 | 说明 | |---|---| | core | raft核心包,其它需要使用raft功能需要引入此包 | | test | 测试用例包,主要用来测试raft各个功能 | | diskv | demo包,用raft实现的一个简易版本的分布式缓存 | #### 环境与版本支持 - JDK版本 >= 1.8 - Maven版本 >= 3.6.2 #### 项目如何引入 ##### Maven 本仓库目前使用的jitpack,因此需要配置jitpack仓库 ~~~xml jitpack.io https://www.jitpack.io ~~~ 引入airy-raft-core坐标 ~~~xml com.gitee.openbyte.raft airy-raft-core {lastVersion} ~~~ #### 使用文档 - [初始化与配置](./docs/Config.md) - [API使用文档和示例](./docs/API.md) - [常见问题](./docs/QNA.md) #### 谁在使用 - [mocha 2.x 一个优秀的开源注册中心](https://gitee.com/open-byte/mocha2) #### 如何参与 1. Fork 本仓库 2. 提交代码 3. 提交 issue,以便我们更好完善本框架 #### 特别感谢 本框架参考了etcd、braft、raft4j等raft框架的实现原理,在此感谢这些优秀的框架和其作者。 #### 责任声明 1. 本框架为作者自己开发,投入精力有限,希望与更多开源爱好者一起完善。 2. 本框架遵循Apache2.0开源协议,若您用到了本框架请遵守协议规定。 3. 本框架全部代码均开源,使用者自行负责。