kafka重要配置-影响可用性,性能

一.topic级别的配置

配置项

可选项默认值broker参数说明

cleanup.policy 

delete,compactdeletelog.cleanup.policy日志策略,delete或者compact
delete.retention.ms数字86400000 (1 day)log.cleaner.delete.retention.ms日志策略为compact生效,保留时间
max.message.bytes数字1048588(>1m)message.max.bytes最大的record batch限制,影响最大可接受的单条消息大小
min.insync.replicas数字1min.insync.replicas最小同步副本,建议:topic的replication fator=3   同时min.insync.replicas=2  同时producer的ack=-1 这三个条件来增加可靠性
retention.bytes数字-1log.retention.bytes日志策略为delete时生效
retention.ms数字604800000 (7 days)log.retention.ms日志策略为delete时生效
segment.jitter.ms数字0log.roll.jitter.ms新日志段生成的随机时间,防止大量日志段同时生成,导致磁盘大量io
segment.ms数字604800000 (7 days)log.roll.ms日志段滚动生成的最大时间
unclean.leader.election.enabletrue,falsefalseunclean.leader.election.enable是否允许非ISR副本选为leader,在可用性和一致性之间做权衡

二.producer配置

配置项可选项默认值说明
acksall,-1,0,11ack数
buffer.memorylong33554432(32m)producer保留未发送消息的最大缓存大小,缓存池满了,发送者会阻塞max.block.ms的时间,之后抛出异常
retriesint2147483647重试次数,如果max.in.flight.requests.per.connection大于1,重试可能导致顺序混乱,delivery.timeout.ms也影响重试时间
retry.backoff.mslong 200重试间隔时间
batch.sizeint16384(16k)batch的字节大小,大于该配置的消息单独一个batch
connections.max.idle.mslong540000 (9 minutes)producer连接的超时时间
delivery.timeout.msint120000 (2 minutes)send()方法的超时时间,应该大于request.timeout.ms+linger.ms
linger.mslong0如果一个batch不满,则等待的时间,可以减少网络请求,以增大吞吐量
request.timeout.msint30000(30 seconds)一个request的超时时间,如果还有重试次数和delivery时间,会重试发送,注意需要大于broker的replica.lag.time.max.ms配置
max.block.mslong6000(1 minute)send()方法中 等待metadata和加到batch的时间,不包括batch发送的时间
max.request.sizeint 1048576(1m)一个batch请求的最大字节数,注意要和服务端配置,topic配置一致
enable.idempotencebooleanfalse是否支持幂等,需要ax.in.flight.requests.per.connection <=5, retries >= 0 and acks = 'all'
max.in.flight.requests.per.connectionint5一个连接同时发送的未得到回复的请求数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值