从保存消息方面来考量,下面这组参数是非常重要的:

retention.ms:规定了该 Topic 消息被保存的时长。默认是 7 天,即该 Topic 只保存最近 7 天的消息。一旦设置了这个值,它会覆盖掉 Broker 端的全局参数值。

./kafka-topics.sh --describe --zookeeper zk:2181 --topic topicName
 

./kafka-topics.sh --zookeeper zk:2181 -topic topicName --alter --config retention.ms=2678400000


retention.bytes:规定了要为该 Topic 预留多大的磁盘空间。和全局参数作用相似,这个值通常在多租户的 Kafka 集群中会有用武之地。当前默认值是 -1,表示可以无限使用磁盘空间。作用在partition上,这个topic的数据大小=retention.bytes * 分区数  如果使用“delete”保留策略,此配置控制分区(由日志段组成)在放弃旧日志段以释放空间之前的最大大小。默认情况下,没有大小限制,只有时间限制。由于此限制是在分区级别强制执行的,因此,将其乘以分区数,计算出topic保留值,以字节为单位。


max.message.bytes:它决定了 Kafka Broker 能够正常接收该 Topic 的最大消息大小就,单条消息的大小。


bin/kafka-topics.sh--bootstrap-serverlocalhost:9092--create--topictransaction--partitions1--replication-factor1--configretention.ms=15552000000    --config  max.message.bytes=5242880  (单位 : bytes  ;    单条消息不能超过5M)
 

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐