server的启动参数
首先kafka的conf文件夹中有好多个配置文件,而针对服务端的配置文件是server.properties。这里面讲到的是一些重要参数
#消息最大大小 这里建议改大1000012 ,这个值比较小
message.max.bytes=1000012
#不允许自己创建topic
auto.create.topics.enable=false
#不允许落后的leader参与选举
unclean.leader.election.enable=false
#不允许定期选举
auto.leader.rebalance.enable=false
//多少副本写入真正写入 当要保证副本同步时,这个值要大于1 但是在测试可以根据实际情况调整
min.insync.replicas=2
TOPIC的参数
retention.ms:topic的参数是在创建topic或者修改topic的时候用到。当topic与全局的参数冲突时,使用topic的参数
默认是 7 天,即该 Topic 只保存最近 7 天的消息。一旦设置了这个值,它会覆盖掉 Broker 端的全局参数值。
retention.bytes:规定了要为该 Topic 预留多大的磁盘空间。和全局参数作用相似,这个值通常在多租户的Kafka 集群中会有用武之地。当前默认值是 -1,表示可以无限使用磁盘空间。[这个跟retention.ms都是为了清理数据用,只要满足任何一个,就执行删除操作]
上面这些是从保存消息的维度来说的。如果从能处理的消息大小这个角度来看的话,有一个参数是必须要设置的,即max.message.bytes。它决定了 Kafka Broker 能够正常接收该 Topic 的最大消息大小。如果在全局层面上,我们不好给出一个合适的最大消息值,那么不同业务部门能够自行设定这个 Topic 级别参数就显得非常必要了。在实际场景中,这种用法也确实是非常常见的。
JVM启动参数
#通用设置建议是6G 如果没有充足的内存,就要降 一般设置在堆回收后的1.5到2倍
export KAFKA_HEAP_OPTS=--Xms6g --Xmx6g