栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Kafka集群详解(一)

Java 更新时间:发布时间: 百科书网 趣学号

kafka特性:

1、kafka的数据只会顺序append,不支持随机写,顺序读写的性能非常高效

2、数据的删除策略是累积到一定程度或者超过一定时间再删除 (默认是7天)

3、Kafka另一个独特的地方是将消费者信息保存在客户端而不是MQ服务器 (zookeeper)

4、消息的投递过程也是采用客户端主动pull的模型

5、客户端在pull数据的时候,尽量以zero-copy(nio)的方式传输, 利用sendfile(对应java里的 FileChannel.transferTo/transferFrom)这样的高级IO函数来减少拷贝开销

Kafka存储策略

1.  kafka以topic来进行消息管理,每个topic包含多个part(ition),每个part对应一个逻辑log,有多个segment组成。

2.  每个segment中存储多条消息(见下图),消息id由其逻辑位置决定,即从消息id可直接定位到消息的存储位置,避免id到位置的额外映射。

3.  每个part在内存中对应一个index,记录每个segment中的第一条消息偏移。

4.  发布者发到某个topic的消息会被均匀的分布到多个part上(随机或根据用户指定的回调函数进行分布),broker收到发布消息往对应part的最后一个segment上添加该消息,当某个segment上的消息条数达到配置值或消息发布时间超过阈值时,segment上的消息会被flush到磁盘,只有flush到磁盘上的消息订阅者才能订阅到,segment达到一定的大小后将不会再往该segment写数据,broker会创建新的segment。

 

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/957124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号