Apache BookKeeper 是一个可以方便扩展,高可用,低延迟的存储系统。BookKeeper 专门为 append-only 的工作模式提供了优化,在以下的应用场景中非常适用:
WAL (Write-Ahead-Logging), 例如 HDFS 的 NameNode 。
消息存储系统,例如 Apache Pulsar 。
Offset/Cursor 存储系统,例如在 Apache Pulsar 中用来存储消息消费位置。
Object/Blob Store 对象存储系统,例如存储状态机的 snapshots 。
Get Started
1, BookKeeper 的相关概念: 了解 BookKeeper 的基本概念和术语,可以作为一个开始,帮助你更好的深入了解 BookKeeper。
2,了解 BookKeeper 的安装和 setup 可以从这里开始,项目的文档中也包含 Docker,Kubenetes和DC/OS 的相关部署。
文档
1, 开发者 Developers 文档
如果你想使用更高级的log stream的API,可以通过这篇文章来了解怎样把ledgers变成一个连续的log stream。基于BookKeeper的子项目DistributedLog, 可以更方便的操作log stream。
2, BookKeeper 管理员 Administrators 文档
Admin Guide 管理手册
3, 代码贡献者 Contributors
参与到BookKeeper中
1,有关于BookKeeper的问题或需要帮助
订阅 或者 发邮件 到 user@bookkeeper.apache.org list, 这里不但可以请教问题,找到答案,还可以帮助其他的遇到同样问题的用户。 - Ask questions, find answers, and also help other users.
订阅 或者 发邮件 到 dev@bookkeeper.apache.org list, 这里可以和BookKeeper的开发人员相互交流,加入技术讨论,提出新的想法或feature。
加入Slack , 这里提供了最直接和快速的方式来和BookKeeper的committer和developer交流。
2, 为BookKeeper社区提供贡献
1) Report a Bug
通过开Github issue , 可以报告bug、 为现有代码提出改进意见或者对新的功能的要求。
2) 贡献代码
- 这里提供了开发人员的环境设置和需要的准备工作。
- 通过Github Issues了解BookKeeper正在进行的相关工作。
- 通过coding style 和现有的pull requests来了解相关的约定和惯例,也可以对PR提出review建议。
- 遵循contribution guide来提供你的修改。
3) 提供文档和网站的改进
开一个Github Issues;提供你的修改,然后通过这里了解怎样对网站和文档进行build来验证你的修改;最后提供你的修改pull request。
在使用pulsar的过程中报了这个么个错误: 22:11:15.867 [bookie-io-1-19] ERROR org.apache.bookkeeper.proto.BookieRequestHandler - Unhandled exception occurred in I/O thread or handler on [id: 0x50be42ef, L:/172.19.148.13