怎么设置kafka topic数据存储时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么设置kafka topic数据存储时间相关的知识,希望对你有一定的参考价值。

参考技术A 基于0.8.0版本。

##查看topic分布情况kafka-list-topic.sh
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (列出所有topic的分区情况)
bin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --topic test (查看test的分区情况)

其实kafka-list-topic.sh里面就一句
exec $(dirname $0)/kafka-run-class.sh kafka.admin.ListTopicCommand $@
实际是通过
kafka-run-class.sh脚本执行的包kafka.admin下面的类
##创建TOPIC kafka-create-topic.sh
bin/kafka-create-topic.sh --replica 2 --partition 8 --topic test --zookeeper 192.168.197.170:2181,192.168.197.171:2181
创建名为test的topic, 8个分区分别存放数据,数据备份总共2份

bin/kafka-create-topic.sh --replica 1 --partition 1 --topic test2 --zookeeper 192.168.197.170:2181,192.168.197.171:2181
结果 topic: test2 partition: 0 leader: 170 replicas: 170 isr: 170
##重新分配分区kafka-reassign-partitions.sh
这个命令可以分区指定到想要的--broker-list上
bin/kafka-reassign-partitions.sh --topics-to-move-json-file topics-to-move.json --broker-list "171" --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --execute
cat topic-to-move.json
"topics":
["topic": "test2"],
"version":1

##为Topic增加 partition数目kafka-add-partitions.sh
bin/kafka-add-partitions.sh --topic test --partition 2 --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (为topic test增加2个分区)

##控制台接收消息
bin/kafka-console-consumer.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --from-beginning --topic test
##控制台发送消息
bin/kafka-console-producer.sh --broker-list 192.168.197.170:9092,192.168.197.171: 9092 --topic test
##手动均衡topic, kafka-preferred-replica-election.sh
bin/kafka-preferred-replica-election.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 --path-to-json-file preferred-click.json

cat preferred-click.json

"partitions":
[
"topic": "click", "partition": 0,
"topic": "click", "partition": 1,
"topic": "click", "partition": 2,
"topic": "click", "partition": 3,
"topic": "click", "partition": 4,
"topic": "click", "partition": 5,
"topic": "click", "partition": 6,
"topic": "click", "partition": 7,
"topic": "play", "partition": 0,
"topic": "play", "partition": 1,
"topic": "play", "partition": 2,
"topic": "play", "partition": 3,
"topic": "play", "partition": 4,
"topic": "play", "partition": 5,
"topic": "play", "partition": 6,
"topic": "play", "partition": 7

]


##删除topic,慎用,只会删除zookeeper中的元数据,消息文件须手动删除
bin/kafka-run-class.sh kafka.admin.DeleteTopicCommand --topic test666 --zookeeper 192.168.197.170:2181 ,192.168.197.171:2181

Kafka 简介梳理

个人在学习Kafka , 这两天在看官方文档。

看完了简介部分,看完做个小总结。看看官方是怎么夸Kafka的。

三大特性

  • 发布-订阅
  • 持久化存储
  • 低延迟的实时处理

特性梳理

  • Topic : 逻辑概念,承载数据的实体
  • 数据的保存期限可以设置
  • 磁盘是顺序读写,IO不是瓶颈
  • 可以处理大数据量数据,且不损失性能
  • 数据存储,
    • 数据不丢失
    • 可以重复消费
    • 各消费组间数据消费隔离。消费数据互不影响
  • 文件存储可以水平扩展
    • 因此只要服务器允许,Kafka 可以保存无限大的数据量
  • 每个分区都可以复制备份,实现容错。
  • 灵活的生产消费规则
    • 生产者
      • 默认轮流的分区写数据
      • 可以自定义规则来指定分区写数据,做到数据隔离。(多租户实现)
      • Kafka 严格保证单分区上的生产顺序
    • 消费者
      • 消费者是以组的形式来获取数据
      • 分区和消费者可以相互对应
        • 水平扩展消费能力
        • 数据隔离不重复消费
      • 消费者数量 <= 分区数
  • 多分区时,Kafka没有总数据的顺序,只有单分区的顺序
  • 多租户,可以通过数据隔离实现。可以对租户资源配额。

以上是关于怎么设置kafka topic数据存储时间的主要内容,如果未能解决你的问题,请参考以下文章

怎么设置kafka topic数据存储时间

kafka查询和修改topic的offset

Kafka 简介梳理

Kafka 简介梳理

Kafka的Topic配置详解

Kafka为啥读写数据效率这么高?