本人英文水平非常有限,看不懂勿喷。
4、设计
4.1 动机
我们设计kafka的目的是把它作为一个统一平台来把所有实时数据提供给大团队。为了达到这个目的我们要彻底想清楚一套应用相当广泛的使用场景。
它应该有高吞吐量来支持大量事件流。比如实时日志集合。
它需要能优雅的处理大量积压数据来支持线上大并发。
这意味着系统将要处理低延时发送来处理更多传统使用场景的消息。
我们想支持分段、分布式实时处理。这是产生我们分布消费者模型的原因。
最后在实例中数据接收服务受到流数据,我们要保证在当前机器出错的情况下系统的容错性。
支持上述几点是我们设计的唯一要素,比起传统消息系统更像是数据库记录。我们将在接下来几节简要描述设计概要。
4.2 持久化
不要惧怕文件系统
4.3 效率
端对端批量压缩
4.4 生产者
负载均衡
异步发送
4.5 消费者
拉入拉出
消费者职责
离线数据加载
4.6 消息传递
4.7 同步
复制日志:人数、中断、机器状态
异常首相算法:加入他们挂了怎么办
可用性及耐用性保证
复制管理
日志压缩
日志压缩基础
日志压缩提供什么保证
日志压缩详情
配置日志清理
4.9 限制
0.9版本以后,kafka集群强制限制了生产者请求限制。限制以一组客户端共享的限额比特率临界值为基础。
本人英文水平非常有限,看不懂勿喷。