【Kafka官方文档翻译】5.3.1. Broker Configs

原文地址:https://kafka.apache.org/0101/documentation.html#brokerconfigs

基本配置如下:

  • broker.id
  • log.dirs
  • zookeeper.connect
      Topic 级别的配置和默认值将在下面进行更详细的讨论。
配置项 描述 值的类型 默认值 有效值 重要级别
zookeeper.connect ZooKeeper 主机地址 string 高
advertised.host.name 已废弃:仅在没有设置advertised.listeners或listeners时使用。使用advertised.listeners 替代。供客户端使用的发布到 ZooKeeper 上的主机名。在IaaS环境中,这可能需要与代理服务器绑定到的接口不同。如果没有设置,它将使用host.name的值。 否则它将使用从java.net.InetAddress.getCanonicalHostName()返回的值。 string null 高
advertised.listeners 供客户端使用的发布到 ZooKeeper 上的监听器。在IaaS环境中,这可能需要与代理绑定到的接口不同。 如果没有设置,将使用listeners的值。 string null 高
advertised.port 已废弃:仅在没有设置advertised.listeners 或 listeners时使用。使用advertised.listeners替代。供客户端使用发布到 ZooKeeper 上的端口号。在IaaS环境中,这可能需要与代理服务器绑定到的端口不同。 如果没有设置,它将发布与该代理服务器绑定的相同的端口。 int null 高
auto.create.topics.enable 开启在服务器自动创建 topic boolean true 高
auto.leader.rebalance.enable 启用 leader 均衡。 如果需要,后台线程会定期检查并触发 leader 均衡 boolean true 高
background.threads 用于各种后台处理任务的线程数 int 10 [1,...] 高
broker.id 该服务器的代理ID。 如果未设置,将生成唯一的代理ID。为了避免zookeeper生成的代理ID和用户配置的代理ID之间的冲突,请从 reserved.broker.max.id + 1生成代理 idsstart。 int -1 高
compression.type 指定给定 topic 的最终压缩类型。此配置接受标准压缩编解码器('gzip','snappy','lz4')。 它还接受相当于没有压缩的'uncompressed' 和'producer',这意味着保留由制作者设置的原始压缩编解码器。 string producer 高
delete.topic.enable 启用删除 topic,如果此配置已关闭,通过管理工具删除 topic 将无效 boolean false 高
host.name 已废弃,只有当listeners没设置时才有效,使用listeners替代,broker 主机名,如果设置这项,它将只绑定到这个地址。 如果未设置,将绑定到所有接口 string "" 高
leader.imbalance.check.interval.seconds 控制器触发分区重新均衡检查的频率 long 300 高
leader.imbalance.per.broker.percentage 每个 broker 允许 leader 不均衡的比例,如果每个 leader 超过该值,控制器将触发 leader 均衡。该值以百分比指定。 int 10 高
listeners 监听器列表,用 URI 及其端口用逗号分隔,指定主机名为0.0.0.0绑定到所有接口。 将主机名留空以绑定到默认界面。 合法监听器列表示例:PLAINTEXT:// myhost:9092,TRACE://:9091 PLAINTEXT://0.0.0.0:9092,TRACE:// localhost:9093 string null 高
log.dir 保存日志数据的目录(log.dirs属性的补充) string /tmp/kafka-logs 高
log.dirs 保存日志数据的目录。 如果未设置,则使用log.dir中的值 string null 高
log.flush.interval.messages 消息被刷新到磁盘之前在日志分区上累积的消息数 long 9223372036854775807 [1,...] 高
log.flush.interval.ms 任何 topic 中的消息在刷新到磁盘之前保存在内存中的最长时间(毫秒)。 如果未设置,则使用log.flush.scheduler.interval.ms中的值 long null 高
log.flush.offset.checkpoint.interval.ms 更新作为日志恢复点的上次刷新的持久记录的频率 int 60000 [0,...] 高
log.flush.scheduler.interval.ms 日志刷新程序检查是否需要将任何日志刷新到磁盘的以ms为单位的频率 long 9223372036854775807 高
log.retention.bytes 删除之前日志的最大大小 long -1 高
log.retention.hours 在删除之前保留日志文件的小时数(以小时为单位),第三级到log.retention.ms属性 int 168 高
log.retention.minutes 在删除之前保留日志文件的分钟数(以分钟为单位),次于log.retention.ms属性。 如果未设置,则使用log.retention.hours中的值 int null 高
log.retention.ms 删除之前保留日志文件的毫秒数(以毫秒为单位)如果未设置,则使用log.retention.minutes中的值 long null 高
log.roll.hours 在新的日志段推出之前的最长时间(以小时为单位),次于log.roll.ms属性 int 168 [1,...] 高
log.roll.jitter.hours 从logRollTimeMillis(以小时为单位)减去最大抖动,次要为log.roll.jitter.ms属性 int 0 [0,...] 高
log.roll.jitter.ms 从logRollTimeMillis(以毫秒为单位)减去最大抖动。 如果未设置,则使用log.roll.jitter.hours中的值 long null 高
log.roll.ms 新日志段推出之前的最长时间(以毫秒为单位)。 如果未设置,则使用log.roll.hours中的值 long null 高
log.segment.bytes 单个日志文件的最大大小 int 1073741824 [14,...] 高
log.segment.delete.delay.ms 从文件系统中删除文件之前等待的时间 long 60000 [0,...] 高
message.max.bytes 服务器可以接收的消息的最大大小 int 1000012 [0,...] 高
min.insync.replicas 当生产者将acks设置为“all”(或“-1”)时,min.insync.replicas指定必须确认写入被认为是成功的最小副本数。 如果此最小值不能满足,则生产者将引发异常(NotEnoughReplicas或NotEnoughReplicasAfterAppend)。当一起使用时,min.insync.replicas和acks允许您强制更大的耐用性保证。 典型的情况是创建一个复制因子为3的主题,将min.insync.replicas设置为2,并使用“all”的acks生成。 如果大多数副本没有收到写入,这将确保生产者引发异常。 int 1 [1,...] 高
num.io.threads 服务器用于执行网络请求的io线程数 int 8 [1,...] 高
num.network.threads 服务器用于处理网络请求的网络线程数 int 3 [1,...] 高
num.recovery.threads.per.data.dir 每个数据目录用于启动时的日志恢复和关机时的刷新的线程数 int 1 [1,...] 高
num.replica.fetchers 用于从源broker复制消息的抓取器线程数。增加这个值可以增加broker的I / O并行度。 int 1 高
offset.metadata.max.bytes 与偏移提交相关联的元数据条目的最大大小 int 4096 高
offsets.commit.required.acks 在提交之前所需的acks可以被接受。 一般来说,默认值(-1)不应该被重写 short -1 高
offsets.commit.timeout.ms 偏移提交将被延迟,直到所有偏移主题的副本接收到提交或达到此超时。 这与生产者请求超时相似。 int 5000 [1,...] 高
offsets.load.buffer.size 当将偏移量加载到缓存中时,从偏移片段读取的批量大小。 int 5242880 [1,...] 高
offsets.retention.check.interval.ms 检查失效偏移量的频率 long 600000 [1,...] 高
offsets.retention.minutes 日志保留窗口在几分钟内用于补偿主题 int 1440 [1,...] 高
offsets.topic.compression.codec 用于偏移主题的压缩编解码器 - 压缩可用于实现“原子”提交 int 0 高
offsets.topic.num.partitions 偏移提交主题的分区数(部署后不应更改) int 50 [1,...] 高
offsets.topic.replication.factor 偏移主题的复制因子(设置得更高以确保可用性)。 为了确保偏移主题的有效复制因子是配置的值,活动经纪人的数量必须至少为首次请求偏移主题时的复制因子。 如果没有,则偏移主题创建将失败,否则将获得最小复制因子(活着的经纪人,配置的复制因子) short 3 [1,...] 高
offsets.topic.segment.bytes 偏移主题段字节应保持相对较小,以便于更快的日志压缩和缓存加载 int 104857600 [1,...] 高
port 已废弃:listeners替代,端口监听和接受连接 int 9092 高
queued.max.requests 阻塞网络线程之前允许的排队请求数 int 500 [1,...] 高
quota.consumer.default 已废弃:仅当动态默认配额未配置为或在Zookeeper中时使用。 由clientId / consumer group区分的任何消费者如果每秒钟获取的字节数超过此值,将会受到限制 long 9223372036854775807 [1,...] 高
quota.producer.default 已废弃:仅在没有为Zookeeper配置动态默认配额时使用。 任何由clientId区分的生产者如果每秒生成的字节数大于此值,将会被限制 long 9223372036854775807 [1,...] 高
replica.fetch.min.bytes 每个提取响应的最小字节数。 如果没有足够的字节,请等待replicaMaxWaitTimeMs int 1 高
replica.fetch.wait.max.ms 由追随者副本发出的每个提取器请求的最大等待时间。 此值应始终小于replica.lag.time.max.ms,以防止低吞吐量主题的ISR频繁收缩 int 500 高
replica.high.watermark.checkpoint.interval.ms 将高水印保存到磁盘的频率 long 5000 高
replica.lag.time.max.ms 如果追随者至少没有发送任何提取请求或尚未消耗到领导日志结束偏移量,则领导者将从isr中删除跟随者 long 10000 高
replica.socket.receive.buffer.bytes 套接字接收缓冲区用于网络请求 int 65536 高
replica.socket.timeout.ms 网络请求的套接字超时。 其值应至少为replica.fetch.wait.max.ms int 30000 高
request.timeout.ms 配置控制客户端等待请求响应的最长时间。 如果在超时之前未收到响应,客户端将在必要时重新发送请求,如果重试耗尽则客户端将重新发送请求。 int 30000 高
socket.receive.buffer.bytes 套接字服务器套接字的SO_RCVBUF缓冲区。 如果值为-1,则将使用OS默认值。 int 102400 高
socket.request.max.bytes 套接字请求中的最大字节数 int 104857600 [1,...] 高
socket.send.buffer.bytes 套接字服务器套接字的SO_SNDBUF缓冲区。 如果值为-1,则将使用OS默认值。 int 102400 高
unclean.leader.election.enable 指示是否启用不在ISR集中的副本作为最后手段选举为领导者,即使这样做可能会导致数据丢失 boolean true 高
zookeeper.connection.timeout.ms 客户端等待建立与zookeeper的连接的最长时间。 如果未设置,则使用zookeeper.session.timeout.ms中的值 int null 高
zookeeper.session.timeout.ms Zookeeper会话超时 int 6000 高
zookeeper.set.acl Set client to use secure ACLs boolean false 高
broker.id.generation.enable 在服务器上启用自动broker ID生成。 当启用时,应检查为reserved.broker.max.id配置的值。 boolean true 中

更多关于 broker 的配置信息可以在类 kafka.server.KafkaConfig 中找到。
  topic 级别的配置有服务器的默认值,同时每个 topic 也可以重写。如果每个 topic 没有重写将使用服务端的默认值。可以通过一个或多个 --config 选项来在 topic 创建时对属性进行设置。下面的例子创建了一个叫 my-topic 的 topic 同时设置了最大消息大小和刷新速率:

> bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic my-topic --partitions 1
          --replication-factor 1 --config max.message.bytes=64000 --config flush.messages=1

属性也可以使用alter configs命令在以后更改或设置。下面的例子更新 topic 为 my-topic 的最大消息大小:

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --alter --add-config max.message.bytes=128000

查看 topic 的配置可以通过下面的方式:

> bin/kafka-configs.sh --zookeeper localhost:2181 --entity-type topics --entity-name my-topic --describe

删除一个配置可以通过下面的方式:

> bin/kafka-configs.sh --zookeeper localhost:2181  --entity-type topics --entity-name my-topic --alter --delete-config max.message.bytes

以下是主题级配置。 该属性的服务器的默认配置在“服务器默认属性”标题下给出。 给定的服务器默认配置值只适用于主题,如果它没有显式的主题配置覆盖。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,282评论 19赞 139
  • Design 1. Motivation 我们设计Kafka用来作为统一的平台来处理大公司可能拥有的所有实时数据源...
    BlackManba_24阅读 1,696评论 0赞 8
  • kafka的定义:是一个分布式消息系统,由LinkedIn使用Scala编写,用作LinkedIn的活动流(Act...
    时待吾阅读 5,582评论 1赞 15
  • Kafka入门经典教程-Kafka-about云开发 http://www.aboutyun.com/threa...
    葡萄喃喃呓语阅读 11,025评论 4赞 54
  • 一、入门1、简介Kafka is a distributed,partitioned,replicated com...
    HxLiang阅读 3,740评论 0赞 9

友情链接更多精彩内容