26 Star 141 Fork 84

SOFAStack / sofa-jraft

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README_zh_CN.md 10.12 KB
一键复制 编辑 原始数据 按行查看 历史
Block 提交于 2022-06-20 11:21 . add invite link for slack (#848)

SOFAJRaft

build License Maven Central

SOFAJRaft 是一个基于 RAFT 一致性算法的生产级高性能 Java 实现,支持 MULTI-RAFT-GROUP,适用于高负载低延迟的场景。 使用 SOFAJRaft 你可以专注于自己的业务领域,由 SOFAJRaft 负责处理所有与 RAFT 相关的技术难题,并且 SOFAJRaft 非常易于使用,你可以通过几个示例在很短的时间内掌握它。

功能特性

  • Leader 选举和基于优先级的半确定性 Leader 选举
  • 日志复制和恢复
  • 只读成员(学习者角色)
  • 快照和日志压缩
  • 集群线上配置变更,增加节点、删除节点、替换节点等
  • 主动变更 Leader,用于重启维护,Leader 负载平衡等
  • 对称网络分区容忍性
  • 非对称网络分区容忍性
  • 容错性,少数派故障,不影响系统整体可用性
  • 多数派故障时手动恢复集群可用
  • 高效的线性一致读,ReadIndex/LeaseRead
  • 流水线复制
  • 内置了基于 Metrics 类库的性能指标统计,有丰富的性能统计指标
  • 通过了 Jepsen 一致性验证测试
  • SOFAJRaft 中包含了一个嵌入式的分布式 KV 存储实现

需要

编译需要 JDK 8 及以上、Maven 3.2.5 及以上。

文档

如何贡献

如何参与 SOFAJRaft 代码贡献

致谢

SOFAJRaft 是从百度的 braft 移植而来,做了一些优化和改进,感谢百度 braft 团队开源了如此优秀的 C++ RAFT 实现

开源许可

SOFAJRaft 基于 Apache License 2.0 协议,SOFAJRaft 依赖了一些第三方组件,它们的开源协议也为 Apache License 2.0, 另外 SOFAJRaft 也直接引用了一些开源协议为 Apache License 2.0 的代码(可能有一些小小的改动)包括:

  • JCTools 中的 NonBlockingHashMap/NonBlockingHashMapLong
  • Netty 中的 HashedWheelTimer,另外还参考了 Netty 的 Pipeline 设计
  • Protobuf 中对 UTF8 String 高效的编码/解码

社区

  • 微信公众号

已知用户

此处列出了已知在生产环境使用了 SOFAStack 全部或者部分组件的公司或组织,大家可以通过 SOFAStack 使用者登记进行登记。 以下排名不分先后:

蚂蚁集团 网商银行 恒生电子 数立信息 Paytm 天弘基金 中国人保 信美相互 南京银行 民生银行 重庆农商行 中信证券 富滇银行 挖财 拍拍贷 OPPO金融 运满满 译筑科技 杭州米雅信息科技 邦道科技 申通快递 深圳大头兄弟文化 烽火科技 亚信科技 成都云智天下科技 上海溢米辅导 态赋科技 风一科技 武汉易企盈 极致医疗 京东 小象生鲜 北京云族佳 欣亿云网 山东网聪 深圳市诺安赛威 上扬软件 长沙点三 网易云音乐 虎牙直播 中国移动 无纸科技 黄金钱包 独木桥网络 wueasy 北京攸乐科技 易宝支付 威马汽车 亿通国际 新华三 klilalagroup
Java
1
https://gitee.com/sofastack/sofa-jraft.git
git@gitee.com:sofastack/sofa-jraft.git
sofastack
sofa-jraft
sofa-jraft
master

搜索帮助