1.log.dirs:指定Broker须要使用的若干个文件目录路径,无默认值
2.log.dir:单路径,对log.dirs参数的补充
生产环境只需设置log.dirs,多个路径逗号分隔,如/home/kafka1,/home/kafka2,/home/kafka3,另外最好保证这些目录挂载到不一样的物理盘,这样的好处是:
提高读写性能:多块物理盘可同时读写数据
能实现故障转移(Failover):Kafka1.1版本开始,坏掉的磁盘上的数据会自动转移到其余正常的磁盘上,并且Broker还能正常工做,1.1以前任何一块磁盘坏掉,整个Broker进程就会关闭算法
zookeepr.connect:单个Kafka集群能够配置为zk1:2181,zk2:2181,zk3:2181,多个Kafka集群使用同一套Zookeeper集群能够这样配置zk1:2181,zk2:2181,zk3:2181/kafka1和zk1:2181,zk2:2181,zk3:2181/kafka2bootstrap
1.listeners:监听器,告诉外部链接者要经过什么协议访问指定主机名和端口开放的Kafka服务,格式是[协议名]://[主机名]:[端口], [协议名]://[主机名]:[端口],协议好比PLAINTEXT表示明文传输,SSL表示使用SSL或TLS加密传输等,也能够自定义协议名,好比CONTROLLER://localhost:9092,自定义协议还必须指定listener.security.portocol.map参数告诉底层协议
2.advertised.listeners:Broker用于对外发布的监听器缓存
1.auto.create.topics.enable:是否容许自动建立Topic,建议false
2.unclean.leader.election.enable:Leader副本挂了以后,其余数据落后的副本能不能竞选Leader,建议false
3.auto.leader.rebalance.enable:是否容许Kafka按期对一些Topic分区进行Leader重选举,,建议falseapp
1.log.retention:控制一条消息数据被保存多长时间hour|minutes|ms,log.retention.hour=168表示默认保存7天的数据
2.log.retention.bytes:默认值-1,表示你想在这台Broker上保存多少数据均可以
3.message.max.bytes:Broker可以处理的最大消息大小,默认值1000012,建议设置大一点jvm
Topic级别参数会覆盖全局Broker参数的值
retention.ms
retention,bytes
max.message.bytes性能
有两种方式设置Topic级别参数:建议第二种
建立Topic时进行设置加密
bin/kafka-topics.sh--bootstrap-serverlocalhost:9092--create--topictransaction--partitions1--replication-factor1--configretention.ms=15552000000--configmax.message.bytes=5242880
修改Topic时进行设置操作系统
bin/kafka-configs.sh--zookeeperlocalhost:2181--entity-typetopics--entity-nametransaction--alter--add-configmax.message.bytes=10485760
1.KAFKA_HEAP_OPTS:指定堆大小
2.KAFKA_JVM_PERFORMANCE_OPTS:指定GC参数
能够在启动Kafka Broker前先设置这两个环境变量日志
1.文件描述符限制:一般设置成一个超大的值ulimit -n 1000000
2.文件系统类型:ext3/ext4/XFS/ZFS日志型文件系统的选择
3.Swappiness:建议配置成接近0的值如1
4.提交时间:向 Kafka 发送数据并非真要等数据被写入磁盘才会认为成功,而是只要数据被写入到操做系统的页缓存(Page Cache)上就能够了,随后操做系统根据 LRU 算法会按期将页缓存上的“脏”数据落盘到物理磁盘上。这个按期就是由提交时间来肯定的,默认是 5 秒,可适当加大时间code