美文网首页
Broker配置

Broker配置

作者: 不工_0096 | 来源:发表于2018-02-26 14:32 被阅读0次

    原文:https://kafka.apache.org/documentation/#brokerconfigs。转载请注明出处,谢谢。欢迎拍砖指正

    名称 说明 类型 默认值 有效值 重要性
    zookeeper.connect Zookeeper host String
    advertised.host.name 弃用,改用‘advertised.listeners’ string null
    advertised.listeners 注册到ZK的地址,其它客户端通过这个地址来访问本节点。如果未配置,使用“listeners”的配置,跟“listeners”不一样的是 配置‘0.0.0.0‘无效 string null
    advertised.port 弃用,改用‘advertised.listeners’
    auto.create.topics.enable 允许在服务器上自动创建topic boolean true
    auto.leader.rebalance.enable 是否允许leader自均衡 参考,由一个后台线程定时检查和触发 boolean true
    background.threads 处理后台任务的线程数 int 10 [1,...]
    broker.id 该服务的ID标识,默认自动生成唯一标识。为避免和ZK生成的冲突,自动生成的值从 ‘reserved.broker.max.id’ + 1 开始 int -1
    compression.type 指定topic的最终压缩类型,如'gzip', 'snappy', 'lz4','uncompressed'表示不压缩, 'producer'表示保持producer的编码 string producer
    delete.topic.enable 允许删除topic,如果关闭,将不能通过admin tool删除topic boolean true high
    host.name 废弃,改用‘listeners’ string ""
    leader.imbalance.check.interval.seconds 控制器触发检查partition平衡的频率 long 300
    leader.imbalance.per.broker.percentage 允许leader不平衡的比例,超过此值后controller会触发leader balance,该值是百分比的分子 int 10
    listeners? 需要监听的监听器:用逗号分割的URI列表,如果监听器名词不是一个安全的协议,‘ listener.security.protocol.map’也必须设置。指定主机名为 0.0.0.0绑定所有端口。主机名为空绑定到默认端口,例如:PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093 string null
    log.dir 保存log数据的目录('log.dirs'配置的补充) string /tmp/kafka-logs
    log.dirs 保存log数据的目录,为空则使用 'log.dir'的值 string null
    log.flush.interval.messages 每个log partition堆积的消息条数(批量刷新到磁盘,提高IO效率) long Long.MaxValue [1,...]
    log.flush.interval.ms 消息刷新到磁盘之前在内存驻留的时间。如未设置,使用'log.flush.scheduler.interval.ms'的值 long null
    log.flush.offset.checkpoint.interval.ms 更新最近刷新磁盘记录的频率,用来作为日志恢复点 int 60000 [0,...]
    log.flush.scheduler.interval.ms log flusher检查是否有log需要刷新到磁盘的时间间隔(ms) long Long.MaxValue
    log.flush.start.offset.checkpoint.interval.ms 更新日志起始offset的持续记录的频率。 int 60000 [0,...]
    log.retention.bytes log保留的最大尺寸,超过会开始删除 long -1
    log.retention.hours log保留的时长(小时),优先级低于'log.retention.ms' int 168 high
    log.retention.minutes log保留的时长(分钟),优先级低于'log.retention.ms',为空则使用'log.retention.hours'值 int null
    log.retention.ms log保留的时长(ms),为空则使用'log.retention.minutes'值 int null
    log.roll.hours 滚动建立新的log segment最长时间间隔(小时),优先级低于' log.roll.ms' int 168 [1,...]
    log.roll.jitter.hours 建立新的log segment允许的时间抖动(小时,减去该值)避免所有log同时操作造成IO瓶颈参考 int 168 [1,...]
    log.roll.jitter.ms 同上,未设置则使用'log.roll.jitter.hours'的值 long null
    log.roll.ms 滚动建立新的log segment最长时间间隔(ms),未设置则以'log.roll.hours'为准 long null high
    log.segment.bytes log segment的最大尺寸 int 1073741824(2的30次方) [14,...]
    log.segment.delete.delay.ms 从文件系统中删除文件之前等待的时间参考 long 60000 [0,...]
    message.max.bytes Kafka允许的一批record数据的最大尺寸。如果数值增大了并且有早于0.10.2版本的consumer,则consumer的拉取尺寸('fetch.message.max.bytes')也需要增大才能拉取增大了尺寸的record。 在最新版本的消息格式中,为提高效率,record总是会分组成一批一批的。早起版本中,未压缩的record没有分组成批次,该设置适用于单个record。 每个topic的配置可通过'max.message.bytes'调整 int 1000012 [0,...]
    min.insync.replicas 当一个producer设置正确应答标识是 "all" (或 "-1")时,该配置表示需要最少有多少个副本应答成功后,此次写才认为是成功的。如果未达到配置的最小数,producer会抛出异常: NotEnoughReplicas 或 NotEnoughReplicasAfterAppend。二者结合使用提供更好的持久化保证。参考 int 1 [1,...]
    num.io.threads 服务器用于处理磁盘IO操作的线程数 int 8 [1,...]
    num.network.threads 服务器用于接收来自网络的请求并向网络发送响应的线程数 int 3 [1,...]
    num.recovery.threads.per.data.dir 每个data directory的线程数,用于在启动时恢复日志和关闭时刷新。 int 1
    num.replica.fetchers 用于从source broker复制消息的 拉取线程 的数量。增加这个值可以增加follower broker的I/O并行度。 int 1 high
    offset.metadata.max.bytes 一个offset提交时关联的metadata entry允许的最大尺寸offset相关请参考 int 4096
    offsets.commit.required.acks 提交可被接受的确认标识,一般不应修改默认值-1 short -1
    offsets.commit.timeout.ms offset提交会延迟直到offset topic的所有副本接收到commit请求或者达到这个过期时间。类似producer 请求超时时间 int 5000 [1,...]
    offsets.load.buffer.size? 从offset segment加载offset到缓存时的批量大小 int 5242880 [1,...]
    offsets.retention.check.interval.ms 检查过期offset的频率 long 600000 [1,...]
    offsets.retention.minutes 大于此保留期的offset将被丢弃。 int 1440 [1,...]
    offsets.topic.compression.codec offset topic的压缩编码,用于构建原子提交 int 0
    offsets.topic.num.partitions offset topic 的partition数量,启动后不能再修改 int 50 [1,...]
    offsets.topic.replication.factor offset topic 的复制因子(设置更高以确保可用性),如果集群大小不满足此复制因子需求,内部topic创建将失败。 short 3 [1,...]
    offsets.topic.segment.bytes offset topic segment的字节数,应该相对小,便于日志压缩和缓存加载 int 104857600 [1,...]
    port 废弃,改用'listeners'
    queued.max.requests 在阻塞网络线程之前允许放入队列排队的请求数 int 500 [1,...]
    quota.consumer.default 废弃
    quota.producer.default 废弃
    replica.fetch.min.bytes 从副本拉取的响应最小字节数,如果不够,等待replicaMaxWaitTimeMs时间 int 1
    replica.fetch.wait.max.ms follower replicas等待响应的最长时间。应该小于'replica.lag.time.max.ms'以避免ISR副本因为低吞吐量topic而频繁收缩 int 500
    replica.high.watermark.checkpoint.interval.ms high watermark保存到磁盘的频率 long 5000
    replica.lag.time.max.ms 如果follower没有在这个时间内发送拉取请求或者没有消费leader的log end offset。leader会将该follower从isr副本中移除 long 10000
    replica.socket.receive.buffer.bytes socket接收网络请求的缓冲区大小 int 65536
    replica.socket.timeout.ms socket接收网络请求的超时时间,最小应等于'replica.fetch.wait.max.ms'的值 int 30000 high
    request.timeout.ms 客户端等待请求响应的最大时间。如果在超时之前未收到响应,则客户端将在必要时重新发送请求,耗尽重试次数后则请求失败。 int 30000
    socket.receive.buffer.bytes SO_RCVBUF缓冲区大小,设置成 -1 使用操作系统默认值 int 102400
    socket.request.max.bytes socket request的最大字节数 int 104857600 [1,...]
    socket.send.buffer.bytes SO_SNDBUF缓冲区大小,设置成 -1 使用操作系统默认值 int 102400
    transaction.max.timeout.ms 事物最大超时时间。如果客户端请求的事务时间超过了这个值,broker会在InitProducerIdRequest请求中返回一个错误。这可以防止客户端超时太久,阻止consumer从这个事务包含的topic读取。 int 900000 [1,...]
    transaction.state.log.load.buffer.size 从事务日志segment加载producer ids和事务到缓存时的批大小 int 5242880 [1,...]
    transaction.state.log.min.isr 覆盖transaction topic的'min.insync.replicas'配置 int 2 [1,...]
    transaction.state.log.num.partitions transaction topic的partition数量,启动会不能再修改 int 50 [1,...]
    transaction.state.log.replication.factor transaction topic的复制因子(设置更高以确保可用性)。如果集群大小不满足此复制因子需求,内部topic创建将失败。 short 3 [1,...]
    transaction.state.log.segment.bytes transaction topic segment的字节数,应该相对小,便于日志压缩和缓存加载 int 104857600 [1,...]
    transactional.id.expiration.ms transaction coordinator将等待的最大时间量,在此期间如果没有接收到任何事务状态更新,会主动终止一个producer的transactional id int 604800000 [1,...]
    unclean.leader.election.enable 是否允许选举不在isr中的副本作为leader(作为最后手段),此举会导致数据丢失 boolean false
    zookeeper.connection.timeout.ms 客户端和ZK建立连接的超时时长。未设置则使用'zookeeper.session.timeout.ms'的值 int null
    zookeeper.session.timeout.ms ZK session timeout int 6000
    zookeeper.set.acl 设置客户端使用安全的ACLs boolean false
    broker.id.generation.enable 允许自动生成broker id。启用时需检查'reserved.broker.max.id'的值 boolean true
    broker.rack broker的机架信息。将用于机架感知的复制任务,能更好的容错。示例:RACK1, us-east-1d string null
    connections.max.idle.ms 空闲连接超时时间:服务器socket处理线程会关闭空闲超过改时间的连接。 long 600000
    controlled.shutdown.enable 允许优雅的关闭broker,参考 boolean true
    controlled.shutdown.max.retries 关闭失败时的重试次数 int 3
    controlled.shutdown.retry.backoff.ms 每次失败后重试等待的时间间隔,系统需要时间来从导致先前失败的状态中恢复 long 5000
    controller.socket.timeout.ms controller-to-broker的socket超时时间 int 30000
    default.replication.factor 自动创建的topic的默认复制因子 int 1
    delete.records.purgatory.purge.interval.requests? 删除records request的purgatory清洗间隔 (在请求数量上的间隔)参考 int 1
    fetch.purgatory.purge.interval.requests 拉取request的purgatory清洗间隔 (在请求数量上的间隔) int 1000
    group.initial.rebalance.delay.ms 在执行第一次再平衡之前,group coordinator等待的时间以便让更多的consumer加入一个新的group。一个较长的延迟意味着潜在的更少的重新平衡,但是增加了处理开始的时间。 int 3000
    group.max.session.timeout.ms 已注册的consumer的最大session超时时间。长时间的超时会给consumer更多的时间来处理心跳之间的信息,代价是需要更长的时间来检测故障。 int 300000
    group.min.session.timeout.ms 已注册的consumer的最小session超时时间。更短的超时时间会有更快的故障检测,代价是更频繁的consumer心跳,可能会压垮broker的资源。 int 6000
    inter.broker.listener.name 用于在broker之间进行通信的监听器的名称。如未设置,采用'security.inter.broker.protocol'的值。但二者同时设置会报错 string null
    inter.broker.protocol.version 指定broker通信协议版本。比如0.8.0, 0.8.1, 0.8.1.1, 0.8.2, 0.8.2.0, 0.8.2.1, 0.9.0.0, 0.9.0.1 string 1.0-IV0
    log.cleaner.backoff.ms log cleaner没有日志需要清理时的睡眠时间 long 15000 [0,...]
    log.cleaner.dedupe.buffer.size 用于在所有cleaner线程进行日志删除的dedupe buffer大小。 long 134217728
    log.cleaner.delete.retention.ms delete record保留时间 long 86400000
    log.cleaner.enable 是否允许log cleaner允许,如果topic的cleanup.policy=compact则必须允许,包括offsets topic。如果被禁用,这些topic将不会被压缩,并且不断地增大。 boolean true
    log.cleaner.io.buffer.load.factor Log cleaner的dedupe buffer负载系数。可以设置为1。一个较高的值将允许同时清理更多的日志,但是会导致更多的散列冲突。 double 0.9
    log.cleaner.io.buffer.size 用于在所有cleaner线程进行日志删除的I/O buffer大小 int 524288 [0,...]
    log.cleaner.io.max.bytes.per.second 控制log cleaner的读写I/O均值少于该值 double 1.7976931348623157E308
    log.cleaner.min.cleanable.ratio 最小脏日志比例达到多少时会被清理 double 0.5
    log.cleaner.min.compaction.lag.ms 消息在日志中保持不压缩的最小时间。只适用于被压缩的日志。 long 0
    log.cleaner.threads 用于日志清理的后台线程数。 int 1 [0,...]
    log.cleanup.policy 在保留窗口之外的segments的默认清理策略。有效的策略是:“delete”和“compact” list delete [compact, delete]
    log.index.interval.bytes 我们将一个entry添加到offset的间隔。 int 4096 [0,...]
    log.index.size.max.bytes offset索引的最大字节数 int 10485760 [4,...]
    log.message.format.version 指定broker将消息追加到log中的消息格式化版本。该值应该是一个有效的ApiVersion。比如 0.8.2, 0.9.0.0, 0.10.0。通过设置特定的消息格式版本,用户能确认磁盘上的所有现有消息版本都比指定的更小或相等。不正确地设置此值将导致旧版本的用户中断,因为他们不理解接收的消息。 string 1.0-IV0
    log.message.timestamp.difference.max.ms broker和message的时间戳差异允许的最大值。如果log.message.timestamp.type=CreateTime,且时间戳的差异超过此阈值,则将拒绝消息。 如果log.message.timestamp.type=LogAppendTime将忽略该配置。该值不要超过log.retention.ms的值,避免不必要的日志频繁滚动 long 9223372036854775807
    log.message.timestamp.type 定义消息中的时间戳是消息创建时间还是日志追加时间。可以是 'CreateTime' 或 'LogAppendTime' string CreateTime [CreateTime, LogAppendTime]
    log.preallocate 创建新segment时是否预分配文件? window下建议设置为true boolean false
    log.retention.check.interval.ms log cleaner检查log是否可以删除的时间间隔 long 300000 [1,...]
    max.connections.per.ip 每个ip地址所允许的最大连接数。 int 2147483647 [1,...]
    max.connections.per.ip.overrides 每个ip或主机名的最大连接数。覆盖全局默认值 string ''''
    num.partitions 每个topic的log partition的默认数量。 int 1 [1,...]
    principal.builder.class 实现KafkaPrincipalBuilder接口的类的完全限定名,用于构建授权使用的KafkaPrincipal对象。此配置还支持PrincipalBuilder(已弃用)接口,该接口用于在SSL基础上进行客户端身份验证。如果该配置未指定,默认行为取决于使用的安全协议。对于SSL身份验证,如果有提供客户端证书,则principal名称来自于它;如果不需要客户端身份验证,则principal名称是ANONYMOUS。对于SASL身份验证,principal由sasl.kerberos.principal.to.local.rules定义的规则决定。如果使用了GSSAPI,并且SASL身份验证ID用于其它机制。对于PLAINTEXT,principal是ANONYMOUS class null
    producer.purgatory.purge.interval.requests producer的request purgatory清洗间隔(请求数) int 1000
    queued.max.request.bytes 在没有读取更多请求之前允许排队的字节数。 long -1
    replica.fetch.backoff.ms 拉取partition错误时的睡眠时间。 int 1000 [0,...]
    replica.fetch.max.bytes 每个partition拉取的消息字节数。并不是一个绝对最大值,如果拉取的第一个非空分区中的第一个记录批大于这个值,那么将仍然返回记录批,以确保操作完成。broker接受的最大record批大小由message.max.bytes (broker 配置) or max.message.bytes (topic 配置)定义. int 1048576 [0,...]
    replica.fetch.response.max.bytes int 10485760 [0,...]
    reserved.broker.max.id 保留的broker id最大值,即用户可以自定义的最大值 int 1000 [0,...]
    sasl.enabled.mechanisms
    sasl.kerberos.kinit.cmd
    sasl.kerberos.min.time.before.relogin
    sasl.kerberos.principal.to.local.rules
    sasl.kerberos.service.name
    sasl.kerberos.ticket.renew.jitter
    sasl.kerberos.ticket.renew.window.factor
    sasl.mechanism.inter.broker.protocol
    security.inter.broker.protocol
    ssl.cipher.suites
    ssl.client.auth
    ssl.enabled.protocols
    ssl.key.password
    ssl.keymanager.algorithm
    ssl.keystore.location
    ssl.keystore.password
    ssl.keystore.type
    ssl.protocol
    ssl.provider
    ssl.trustmanager.algorithm
    ssl.truststore.location
    ssl.truststore.password
    ssl.truststore.type
    alter.config.policy.class.name 用来校验的配置变更策略类。必须实现org.apache.kafka.server.policy.AlterConfigPolicy接口 class null low
    authorizer.class.name? 用来鉴权的类 string '''' low
    create.topic.policy.class.name 创建topic的策略类,用于校验,需实现org.apache.kafka.server.policy.CreateTopicPolicy接口 class null low
    listener.security.protocol.map
    metric.reporters
    metrics.num.samples
    metrics.recording.level
    metrics.sample.window.ms
    quota.window.num
    quota.window.size.seconds
    replication.quota.window.num
    replication.quota.window.size.seconds
    ssl.endpoint.identification.algorithm
    ssl.secure.random.implementation
    transaction.abort.timed.out.transaction.cleanup.interval.ms
    transaction.remove.expired.transaction.cleanup.interval.ms
    zookeeper.sync.time.ms

    可多详细配置项可以阅读代码: kafka.server.KafkaConfig

    • offset的管理?
    • Kafka里面的事务?

    相关文章

      网友评论

          本文标题:Broker配置

          本文链接:https://www.haomeiwen.com/subject/dgavnxtx.html