设为首页 加入收藏

TOP

004.Kafka消息存储和处理
2019-05-02 02:32:58 】 浏览:52
Tags:004.Kafka 消息 存储 处理
Message存储:
Topic有多个Partition,一个Partition对应一个log,一个log有多个Segment。
每个Segment存储多个Message,Message的offset决定存储位置。
Broker接收到Message会顺序追加到最后一个Segment中,当Segment的Message达到阈值时(大小或条数),
Segment会将Message写入磁盘中,只有flush到磁盘中的消息才能够被订阅和消费,当Segment达到一定大小时将不会再写入数据,
Broker会生成新的Segment。
每个Partition在内存中对应一个index,记录每个Segment的第一个消息的offset。
Message处理:
Producer生产Message并推(push)到Broker中,Consumer消费Message从Broker中拉(pull),并将消费过的消息的offset存储在Zookeeper中,在Consumer宕机重启时,能够从最近的offset开始继续消费Message。
Producer将消息push到Broker上,Kafka采用的是at least once最少发送一次,发送失败将多次发生,达到阈值时,将不再发送;
Consumer从Broker中pusll消息消费时,使用ack机制,并将消息的消费状态保持在zookeeper中。
Kafka通过at least once和ack保证Message的事务性。
Broker只负责消息存储,不负责消息消费状态维护,有Consumer主机维护。
Broker对消息的删除,采用时间机制,默认保留7天,否则删除过期消息。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇        .. 下一篇Window下kafka 单机SASL_PLAINTEX..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目