当前位置: 首页 > 工具软件 > OR Broker > 使用案例 >

broker配置

危璞
2023-12-01

#broker信息配置

broker.id:broker的id broker唯一标志

 

#下面三个配置是主机Ip和端口,broker注册会把这些信息到zk,后续版本 只用listener,host和port已经废弃

host.name:主机名 或者Ip

port:端口

listeners: 主机+端口,格式:security_protocol://host_name:port

如果没有安全协议,则用PLAINTEXT代替,例如PLAINTEXT://172.17.0.17:9092

 

#有时候客户端通过外网访问kafka集群,但是上面一般填的是内网地址,供内部调用,填写下面三个配置,客户端会通过下面的配置连接kakfa集群,格式类似

advertised.listeners

advertised.port

advertised.host.name:

broker.rack:指定机架名字,分配副本尽可能地为副本挑选不同机架的broker

broker.id.generation.enable:自动分配Brokerid,reserved.broker.max.id 需要配置

reserved.broker.max.id:最大max brokerid

 

 

#topic属性

auto.create.topics.enable:是否自动生成topic

delete.topic.enable:关闭了,则不能通过工具删除topic

compression.type:消息压缩类型,设为producer意思是producer来设置压缩类型

num.partitions:默认topic 的partition数量

default.replication.factor:默认副本数

 

 

#rebalance配置

auto.leader.rebalance.enable:开启自动balance,开启后台线程检查,当partition的leader分配不均匀时发生reblance,默认打开

leader.imbalance.check.interval.seconds:检查balance的间隔

leader.imbalance.per.broker.percentage:判定不balance的阈值

 

#消息文件配置

log.dir:消息保存目录

log.dirs:消息保存目录

log.flush.interval.messages:异步刷盘消息数间隔

log.flush.interval.ms:异步刷盘消息时间间隔

log.flush.offset.checkpoint.interval.ms:刷checkpoint到磁盘的时间间隔

log.flush.scheduler.interval.ms:刷checkpoint到磁盘的时间间隔

log.retention.bytes:默认日志保留最大字节数

log.retention.hours:默认日志保留时间

log.retention.minutes:默认日志保留时间

log.retention.ms:默认日志保留时间

log.roll.hours:生成新的segment的时间间隔

log.roll.jitter.hours:生成新的segment的时间间隔

log.roll.jitter.ms:生成新的segment的时间间隔

log.roll.ms:生成新的segment的时间间隔

log.segment.bytes:partition里一个segment的大小(一个partition分为很多个segment)

log.segment.delete.delay.ms:日志删除时间。当删除的条件满足以后,日志将被“删除”,但是这里的删除其实只是将该日志进行了“delete”标注,文件只是无法被索引到了而已。但是文件本身,仍然是存在的,只有当过了log.segment.delete.delay.ms 这个时间以后,文件才会被真正的从文件系统中删除。

log.index.interval.bytes:segment稀疏索引的间隔

log.index.size.max.bytes:index文件最大大小

log.preallocate:预分配文件空间

log.retention.check.interval.ms:检查日志是否删除的时间间隔

 

#日志清理(compact)配置

log.cleanup.policy:"delete" or "compact",2个弄在一起容易混淆,默认delete只执行日志清理(过期或者大小太大),设置为compact。delete操作还会执行,compact是会开启清理线程,清理消息(key相同的消息,保存最新的key)

log.cleaner.backoff.ms:清理日志时间间隔

log.cleaner.dedupe.buffer.size:清理日志时允许的内存空间

log.cleaner.delete.retention.ms:压缩后,待删除的日志保留时间

log.cleaner.enable:是否开启日志清理

log.cleaner.io.buffer.load.factor:

log.cleaner.io.buffer.size:IO缓存区

log.cleaner.io.max.bytes.per.second:IO速度

log.cleaner.min.cleanable.ratio:

log.cleaner.threads:日志清理线程数

 

 

#消息设置

log.message.timestamp.difference.max.ms:消息时间戳和接收到时间差别太大抛弃

log.message.timestamp.type:`CreateTime` or `LogAppendTime`

message.max.bytes:每条消息最大长度

 

#服务性能相关

num.io.threads:执行文件IO的线程 默认8个

num.network.threads:处理网络的线程 默认3个

queued.max.requests:队列最大缓冲请求

socket.receive.buffer.bytes:socket接受buffer大小

socket.request.max.bytes:请求最大字节数

socket.send.buffer.bytes:socket发送buffer大小

request.timeout.ms:producer收到确认ack超时时间,由broker同步该配置给producer

quota.consumer.default:消费者配额限制,每秒字节数

quota.producer.default:生产者配额限制,每秒字节数

connections.max.idle.ms:连接最大闲置时间

controlled.shutdown.enable:能不能关闭,默认打开

controlled.shutdown.max.retries:关闭重试次数

controlled.shutdown.retry.backoff.ms:

max.connections.per.ip:对一个ip最大连接数

max.connections.per.ip.overrides:

background.threads:执行特定任务的后台线程数量(kafka有个scheduler线程池,定期执行特定任务,比如清理日志,刷盘,保存checkpoint)

controller.socket.timeout.ms:controller对其他broker通信超时时间

num.recovery.threads.per.data.dir:每个数据目录用于启动回复和关闭刷盘的线程数量

 

#zk设置

zookeeper.connection.timeout.ms:zk连接超时时间

zookeeper.session.timeout.ms:zk session超时时间

zookeeper.set.acl

zookeeper.sync.time.ms

 

#副本

min.insync.replicas:最小需要同步消息ISR的数量。request.required.acks参数设置为-1时,此参数才生效,

num.replica.fetchers:副本fetch线程的数量

offsets.commit.required.acks:提交commit的ack值(跟生产者的acks类似,commit消息也作为topic存下。疑问:ack=-1,消费者的表现)

replica.fetch.max.bytes:每次副本fetch最大字节数

replica.fetch.min.bytes:最小字节数

replica.fetch.wait.max.ms:最大等待时间(leader计时?还是follower计时)

replica.high.watermark.checkpoint.interval.ms:watermark保存到磁盘的频率

replica.lag.time.max.ms:超过该值没收到副本的请求,移出ISR

replica.socket.receive.buffer.bytes

replica.socket.timeout.ms:最大超时时间,需要设得比replica.fetch.wait.max.ms大

unclean.leader.election.enable:是否从非ISR选举leader,true可能会导致数据丢失

replica.fetch.backoff.ms:fetch错误发生后的睡眠时间

 

 

#offset管理

offsets.commit.timeout.ms:提交commit的超时

offsets.load.buffer.size:将commit offset的消息读进内存cache的大小

offsets.retention.check.interval.ms:更新陈旧Offset的频率

offsets.retention.minutes:commit offset保留时间,默认1440

offsets.topic.num.partitions:默认50个partition

offsets.topic.replication.factor:副本数

offsets.topic.segment.bytes:一个segment的大小

offset.metadata.max.bytes:客户端保留offset元信息的最大空间大小

 

针对comsumer,最大最小超时时间

group.max.session.timeout.ms

group.min.session.timeout.ms

 

 

 

 类似资料: