Kafka基本配置
其他
2019-02-18 20:01:44
阅读次数: 0
服务端的配置文件--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