首页  

Kafka配置参数     所属分类 kafka 浏览量 951
Broker参数

存储
log.dir     单个路径
log.dirs    多个路径,推荐使用
/home/kafka1,/home/kafka2,/home/kafka3
建议把不同的路径挂载到不同的物理磁盘上

1.1引入 故障转移 Failover , 磁盘损坏自动迁移到正常磁盘上


Zookeeper
分布式协调 协调管理并保存Kafka集群元数据
Broker topic 分区 分区leader ISR 等信息
zookeeper.connect
zk1:2181,zk2:2181,zk3:2181

可配置 zkroot ,配置一个即可
zk1:2181,zk2:2181,zk3:2181/kafka


连接
listeners
逗号分隔的三元组  协议名称,主机名,端口号
协议名称  
PLAINTEXT 明文传输
SSL 使用SSL或者TLS加密传输
主机名推荐使用域名

advertised.listeners
对外发布的监听器

host.name/port   过期参数


Topic
auto.create.topics.enable
是否允许自动创建Topic,建议设置为false

unclean.leader.election.enable
是否允许Unclean Leader选举,建议设置为false
分区有多个副本,只有一个副本对外提供服务,即Leader副本
只有保存数据比较多的副本才有资格竞选Leader

false  不允许落后太多的副本竞选Leader,后果就是这个分区不可用,因为没有Leader
true   允许从落后太多的副本中选举出一个Leader,后果就是数据有可能丢失

auto.leader.rebalance.enable
是否允许定期进行Leader选举,建议设置为false
换Leader的代价很高 


数据留存

log.retention.{hours|minutes|ms}
数据保留时间 推荐使用hours  ,默认7天 

log.retention.bytes
默认值为-1,表示不限制

message.max.bytes
Broker能够接收的最大消息大小 默认1M


Topic级别参数 Topic级别参数会覆盖全局Broker参数 retention.ms、retention.bytes、message.max.bytes 创建Topic ,保存最近半年数据,单个消息最大2MB $ kafka-topics --bootstrap-server localhost:9092 --create --topic transaction --partitions 1 --replication-factor 1 --config retention.hours=4320 --config max.message.bytes=2048000 修改Topic级别参数,将消息的最大大小修改为3MB $ kafka-configs --zookeeper localhost:2181 --entity-type topics --entity-name transaction --alter --add-config max.message.bytes=3072000
JVM参数 Kafka2.0.0开始,不支持 Java7 堆大小设置为6GB Broker与客户端交互时,会在JVM堆上创建大量的ByteBuffer实例 垃圾收集器 Java7 如果Broker所在机器CPU资源非常充裕,建议使用CMS收集器,-XX:+UseCurrentMarkSweepGC 否则使用吞吐量优先收集器,-XX:+UseParallelGC Java8 使用G1收集器,在没有任何调优的情况下,G1的表现要优于CMS 主要体现在更少的FullGC,更少的参数调整 -Xms6g -Xmx6g -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true
OS参数 文件描述符限制 ulimit -n 文件系统类型 日志型文件系统:ext3、ext4、XFS ,XFS性能强于ext4,推荐XFS Swappiness 设置一个很小的值 譬如 1 设置为0,当物理内存耗尽时,操作系统会触发OOM Killer OOM Killer会随机挑选一个进程然后kill掉 Flush 向Kafka发送数据,写入到操作系统的页缓存(Page Cache)即可 操作系统定期将页缓存上的脏数据落盘到物理磁盘上 Flush落盘时间默认5秒,如果页缓存中的数据在写入磁盘前宕机,会丢失数据 在软件层面已经提供了多副本的冗余机制,可适当调大Flush落盘时间
java8 jvm 参数 CMS JVM参数介绍 jvm相关知识点 CMS和G1的区别 jvm参数查看 JVM GC 过程简介

上一篇     下一篇
Zookeeper四字命令

降级 限流 熔断 简单理解

kafka在zookeeper中的元数据

kafka集群搭建

kafka命令行发送接收消息

zookeeper命令行zkCli使用