目录
写在最前面
最近在极客时间学习Kafka核心技术与实战,在这里写一写学到的东西,就当做是学习笔记。不想做搬运工,还是要按自己的理解来写,这样学到的才是自己的知识。
在网上找Kafka集群搭建,很多文章大概都是手把手教你从安装JDK开始一步一步到测试数据,过程很详细,但是其中涉及到很多细节,比如说一些参数配置,作者都是列出一系列参数然后注明都是做什么的,很少有人讲这些参数为什么要这样配。如果你不知道为什么,那你肯定就不会去调整参数。接下来我会把我所学到的总结出来。
Kafka集群搭建最重要的参数
首先,这里提到的最重要的参数包括:JVM参数,Broker参数,主题(topic)级别的参数
Broker 端参数
目前Kafka Broker提供有近200个参数,当然其中大部分参数是不需我们自己动手配的。
上图所示log.dirs需要设置多个目录,而且在生产上最好不同的目录挂载到不同的磁盘。这样做有两个好处:
提高读写性能:比起单块磁盘,多块磁盘读写操作时拥有更大的吞吐量
故障转移(Failover):Failover是kafka 1.1版本提供的特性,前提条件是replica 机制。在此之前只要使用的任何一块磁盘挂掉,Broker进程就会挂掉。1.1版本之后解决了这样的问题,坏掉的磁盘上的数据有转移到正常的磁盘上,依然可以提供服务。
Zookeeper相关配置
Kafka与Zookeeper相关的重要配置:
Broker 连接相关配置
即Broker于客户端和其他Broker通信的相关配置
Topic配置
数据留存参数配置
总结:
上面说的这些参数基本都是不能用默认值,需要我们自己配的。描述过程中我用了思维导图的形式(都是我做的)。因为图要比文字更直观,好记一些。下面我列一下上面说的到的参数;