Kafka基本配置

服务端的配置文件--server.properties

参数 说明
broker.id 每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况
host.name broker的主机地址,若是设置了,那么会绑定到这个地址上,若是没有,会绑定到所有的接口上,并将其中之一发送到ZK,一般不设置
port broker server服务端口
num.network.threads broker处理消息的最大线程数,一般情况下数量为cpu core的个数
num.io.threads broker处理磁盘IO的线程数,数值为cpu core个数的2倍
socket.send.buffer.bytes socket的发送缓冲区,socket的调优参数SO_SNDBUFF
socket.receive.buffer.bytes socket的接受缓冲区,socket的调优参数SO_RCVBUFF
socket.request.max.bytes socket请求的最大数值,防止serverOOM,message.max.bytes必然要小于socket.request.max.bytes,会被topic创建时的指定参数覆盖
log.dirs=/data/kafka-logs kafka数据的存放地址,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能 /data/kafka-logs-1,/data/kafka-logs-2
num.partitions 每个topic的分区个数,若是在topic创建时候没有指定的话会被topic创建时的指定参数覆盖
num.recovery.threads.per.data.dir 每个数据目录在启动时用于日志恢复和在关闭时用于刷新的线程数。对于安装在RAID阵列中的数据dirs,建议增加此值。
log.retention.hours 日志保留小时数
log.retention.bytes 保留的日志文件的大小 -1表示不限制,可以同时指定log.retention.bytes和log.retention.hours来混合指定保留规则。一旦日志的大小超过了log.retention.bytes就清除老的segment,一旦某个segment的保留时间超过了规定的值同样将其清除。
log.segment.bytes topic的分区是以一堆segment文件存储的,这个控制每个segment的大小,会被topic创建时的指定参数覆盖
log.roll.hours 这个参数会在日志segment没有达到log.segment.bytes设置的大小,也会强制新建一个segment会被 topic创建时的指定参数覆盖
log.retention.check.interval.ms 文件大小检查的周期时间
zookeeper.connect broker需要使用zookeeper保存meta数据
zookeeper.connection.timeout.ms zookeeper链接超时时间
message.max.bytes 表示消息体的最大大小,单位是字节
background.threads 一些后台任务处理的线程数,例如过期消息文件的删除等,一般情况下不需要去做修改
queued.max.requests 等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个数值,那么会停止接受外部消息,应该是一种自我保护机制

生产端的配置文件--producer.properties

参数 说明
metadata.broker.list 指定节点列表
compression.type 压缩类型,可选none, gzip, snappy, lz4
compressed.topics 如果要压缩消息,这里指定哪些topic要压缩消息,默认是empty,表示不压缩
partitioner.class 指定分区处理类。默认kafka.producer.DefaultPartitioner
request.required.acks 设置发送数据是否需要服务端的反馈,有三个值0,1,-1,0:producer不会等待broker发送ack;1:当leader接收到消息后发送ack; -1:当所有的follower都同步消息成功后发送ack
request.timeout.ms 客户端等待请求响应的最长时间
queue.enqueue.timeout.ms 当消息在producer端沉积的条数达到“queue.buffering.max.messages"后阻塞一定时间后,队列仍然没有enqueue(producer仍然没有发送出任何消息)此时producer可以继续阻塞,或者将消息抛弃 -1:无阻塞超时限制,消息不会被抛弃 0 :立即清空队列,消息被抛弃
serializer.class 指定序列化处理类

消费端的配置文件--consumer.properties

参数 说明
zookeeper.connect(必需) zookeeper连接服务器地址
zookeeper.connectiontimeout.ms zookeeper连接的过期时间
zookeeper.session.timeout.ms zookeeper的session的过期时间
zookeeper.sync.time.ms 指定多久消费者更新offset到zookeeper中
group.id(必需) 消费者的group id
auto.commit.enable 是否自动提交offset信息
auto.commit.interval.ms 自动更新时间
consumer.id 当前consumer的标识
queued.max.message.chunks 最大取多少块缓存到消费者(默认10)
rebalance.max.retries 当有新的consumer加入到group时,将会reblance
fetch.min.bytes 获取消息的最大尺寸,broker不会向consumer输出大于此值得chunk
fetch.wait.max.ms 当消息尺寸不足时,server阻塞的时间,如果超时,立即发送给consumer

猜你喜欢

转载自blog.csdn.net/weixin_33995481/article/details/87239957