怎么设置kafka topic数据存储时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置kafka topic数据存储时间相关的知识,希望对你有一定的参考价值。
1、Kafka创建topic命令很简单,一条命令足矣:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test 。
2.此命令将创建一个名为test的topic,其中有三个分区,每个分区需要分配三个副本。
三。topic创建主要分为两部分:命令行controller逻辑部分。
四。后台逻辑将监听zookeeper下对应的目录节点。一旦启动topic创建命令,它将创建一个新的数据节点并触发后台创建逻辑。
五个。确定分区副本分配方案(即,将每个分区副本分配给哪个代理);创建zookeeper节点并将此方案写入/brokers/topics/<topic>节点。
五个。确定分区副本分配方案(即每个分区的副本分配给哪个分区)broker上);创建zookeeper节点,把这个方案写入/brokers/topics/<topic>节点下。
6、Kafka controller这一部分的主要任务是:创建分区;创建副本;为每个分区选择leaderISR;;更新各种缓存。
参考技术A1、Kafka创建topic命令很简单,一条命令足矣:bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test 。
2、这条命令会创建一个名为test的topic,有3个分区,每个分区需分配3个副本。
3、topic创建主要分为两个部分:命令行部分+后台(controller)逻辑部分。
4、后台逻辑会监听zookeeper下对应的目录节点,一旦发起topic创建命令,该命令会创建新的数据节点从而触发后台的创建逻辑。
5、确定分区副本的分配方案(就是每个分区的副本都分配到哪些broker上);创建zookeeper节点,把这个方案写入/brokers/topics/<topic>节点下。
6、Kafka controller部分主要做下面这些事情:创建分区;创建副本;为每个分区选举leader、ISR;更新各种缓存。
参考技术B 在 server.properties中配置log.retention.minutes=1days
log.cleanup.policy = delete
选项,数据存储的最大时间超过这个时间会根据log.cleanup.policy设置的策略处理数据,也就是消费端能够多久去消费数据。log.retention.bytes和log.retention.minutes任意一个达到要求,都会执行删除。
log.retention.bytes是指定topic每个分区的最大文件大小,一个topic的大小限制 =分区数*log.retention.bytes。-1没有大小限log.retention.bytes和log.retention.minutes任意一个达到要求,都会执行删除。 参考技术C Kafka最核心的思想是使用磁盘,而不是使用内存。经过了解发现磁盘的顺序读写速度和内存持平。
而且Linux对于磁盘的读写优化也比较多,包括read-ahead和write-behind,磁盘缓存等。如果在内存做这些操作的时候,一个是JAVA对象的内存开销很大,另一个是随着堆内存数据的增多,JAVA的GC时间会变得很长,使用磁盘操作有以下几个好处:
1、磁盘缓存由Linux系统维护,减少了程序员的不少工作。
2、磁盘顺序读写速度超过内存随机读写。
3、JVM的GC效率低,内存占用大。使用磁盘可以避免这一问题。
4、系统冷启动后,磁盘缓存依然可用。
Kafka 简介梳理
个人在学习Kafka , 这两天在看官方文档。
看完了简介部分,看完做个小总结。看看官方是怎么夸Kafka的。
三大特性
- 发布-订阅
- 持久化存储
- 低延迟的实时处理
特性梳理
- Topic : 逻辑概念,承载数据的实体
- 数据的保存期限可以设置
- 磁盘是顺序读写,IO不是瓶颈
- 可以处理大数据量数据,且不损失性能
- 数据存储,
- 数据不丢失
- 可以重复消费
- 各消费组间数据消费隔离。消费数据互不影响
- 文件存储可以水平扩展
- 因此只要服务器允许,Kafka 可以保存无限大的数据量
- 每个分区都可以复制备份,实现容错。
- 灵活的生产消费规则
- 生产者
- 默认轮流的分区写数据
- 可以自定义规则来指定分区写数据,做到数据隔离。(多租户实现)
- Kafka 严格保证单分区上的生产顺序
- 消费者
- 消费者是以组的形式来获取数据
- 分区和消费者可以相互对应
- 水平扩展消费能力
- 数据隔离不重复消费
- 消费者数量 <= 分区数
- 生产者
- 多分区时,Kafka没有总数据的顺序,只有单分区的顺序
- 多租户,可以通过数据隔离实现。可以对租户资源配额。
以上是关于怎么设置kafka topic数据存储时间的主要内容,如果未能解决你的问题,请参考以下文章