kafka系列-kafka配置

# 唯一标识在集群中的 ID ,要求是正数。
broker.id=0
# 服务端口,默认 9092
port=9092
# 监听地址,不设为所有地址
host.name=debugo01
 
# 处理网络请求的最大线程数
num.network.threads=2
# 处理磁盘 I/O 的线程数
num.io.threads=8
# 一些后台线程数
background.threads = 4
# 等待 IO 线程处理的请求队列最大数
queued.max.requests = 500
 
#  socket 的发送缓冲区( SO_SNDBUF
socket.send.buffer.bytes=1048576
# socket 的接收缓冲区 (SO_RCVBUF)
socket.receive.buffer.bytes=1048576
# socket 请求的最大字节数。为了防止内存溢出, message.max.bytes 必然要小于
socket.request.max.bytes = 104857600
 
############################# Topic #############################
# 每个 topic 的分区个数,更多的 partition 会产生更多的 segment file
num.partitions=2
# 是否允许自动创建 topic ,若是 false ,就需要通过命令创建 topic
auto.create.topics.enable =true
# 一个 topic ,默认分区的 replication 个数 ,不能大于集群中 broker 的个数。
default.replication.factor =1
# 消息体的最大大小,单位是字节
message.max.bytes = 1000000
 
############################# ZooKeeper #############################
# Zookeeper quorum 设置。如果有多个使用逗号分割
zookeeper.connect=debugo01:2181,debugo02,debugo03
# 连接 zk 的超时时间
zookeeper.connection.timeout.ms=1000000
# ZooKeeper 集群中 leader follower 之间的同步实际
zookeeper.sync.time.ms = 2000
 
############################# Log #############################
# 日志存放目录,多个目录使用逗号分割
log.dirs=/var/log/kafka
 
# 当达到下面的消息数量时,会将数据 flush 到日志文件中。默认 10000
#log.flush.interval.messages=10000
# 当达到下面的时间 (ms) 时,执行一次强制的 flush 操作。 interval.ms interval.messages 无论哪个达到,都会 flush 。默认 3000ms
#log.flush.interval.ms=1000
# 检查是否需要将日志 flush 的时间间隔
log.flush.scheduler.interval.ms = 3000
 
# 日志清理策略( delete|compact
log.cleanup.policy = delete
# 日志保存时间 (hours|minutes) ,默认为 7 天( 168 小时)。超过这个时间会根据 policy 处理数据。 bytes minutes 无论哪个先达到都会触发。
log.retention.hours=168
# 日志数据存储的最大字节数。超过这个时间会根据 policy 处理数据。
#log.retention.bytes=1073741824
 
# 控制日志 segment 文件的大小,超出该大小则追加到一个新的日志 segment 文件中( -1 表示没有限制)
log.segment.bytes=536870912
# 当达到下面时间,会强制新建一个 segment
log.roll.hours = 24*7
# 日志片段文件的检查周期,查看它们是否达到了删除策略的设置( log.retention.hours log.retention.bytes
log.retention.check.interval.ms=60000
 
# 是否开启压缩
log.cleaner.enable=false
# 对于压缩的日志保留的最长时间
log.cleaner.delete.retention.ms = 1 day
 
# 对于 segment 日志的索引文件大小限制
log.index.size.max.bytes = 10 * 1024 * 1024
#y 索引计算的一个缓冲区,一般不需要设置。
log.index.interval.bytes = 4096
 
############################# replica #############################
# partition management controller replicas 之间通讯的超时时间
controller.socket.timeout.ms = 30000
# controller-to-broker-channels 消息队列的尺寸大小
controller.message.queue.size=10
# replicas 响应 leader 的最长等待时间,若是超过这个时间,就将 replicas 排除在管理之外
replica.lag.time.max.ms = 10000
# 是否允许控制器关闭 broker , 若是设置为 true, 会关闭所有在这个 broker 上的 leader ,并转移到其他 broker
controlled.shutdown.enable = false
# 控制器关闭的尝试次数
controlled.shutdown.max.retries = 3
# 每次关闭尝试的时间间隔
controlled.shutdown.retry.backoff.ms = 5000
 
# 如果 relicas 落后太多 , 将会认为此 partition relicas 已经失效。而一般情况下 , 因为网络延迟等原因 , 总会导致 replicas 中消息同步滞后。如果消息严重滞后 ,leader 将认为此 relicas 网络延迟较大或者消息吞吐能力有限。在 broker 数量较少 , 或者网络不足的环境中 , 建议提高此值 .
replica.lag.max.messages = 4000
#leader relicas socket 超时时间
replica.socket.timeout.ms= 30 * 1000
# leader 复制的 socket 缓存大小
replica.socket.receive.buffer.bytes=64 * 1024
# replicas 每次获取数据的最大字节数
replica.fetch.max.bytes = 1024 * 1024
# replicas leader 之间通信的最大等待时间,失败了会重试
replica.fetch.wait.max.ms = 500
# 每一个 fetch 操作的最小数据尺寸 , 如果 leader 中尚未同步的数据不足此值 , 将会等待直到数据达到这个大小
replica.fetch.min.bytes =1
# leader 中进行复制的线程数,增大这个数值会增加 relipca IO
num.replica.fetchers = 1
# 每个 replica 将最高水位进行 flush 的时间间隔
replica.high.watermark.checkpoint.interval.ms = 5000
 
# 是否自动平衡 broker 之间的分配策略
auto.leader.rebalance.enable = false
# leader 的不平衡比例,若是超过这个数值,会对分区进行重新的平衡
leader.imbalance.per.broker.percentage = 10
# 检查 leader 是否不平衡的时间间隔
leader.imbalance.check.interval.seconds = 300
# 客户端保留 offset 信息的最大空间大小
offset.metadata.max.bytes = 1024
 
#############################Consumer #############################
# Consumer 端核心的配置是 group.id zookeeper.connect
# 决定该 Consumer 归属的唯一组 ID By setting the same group id multiple processes indicate that they are all part of the same consumer group.
group.id
# 消费者的 ID ,若是没有设置的话,会自增
consumer.id
# 一个用于跟踪调查的 ID ,最好同 group.id 相同
client.id = <group_id>
 
# 对于 zookeeper 集群的指定,必须和 broker 使用同样的 zk 配置
zookeeper.connect=debugo01:2182,debugo02:2182,debugo03:2182
# zookeeper 的心跳超时时间,查过这个时间就认为是无效的消费者
zookeeper.session.timeout.ms = 6000
# zookeeper 的等待连接时间
zookeeper.connection.timeout.ms = 6000
# zookeeper follower leader 的同步时间
zookeeper.sync.time.ms = 2000
# zookeeper 中没有初始的 offset 时,或者超出 offset 上限时的处理方式 。
# smallest :重置为最小值
# largest: 重置为最大值
# anything else :抛出异常给 consumer
auto.offset.reset = largest
 
# socket 的超时时间,实际的超时时间为 max.fetch.wait + socket.timeout.ms.
socket.timeout.ms= 30 * 1000
# socket 的接收缓存空间大小
socket.receive.buffer.bytes=64 * 1024
# 从每个分区 fetch 的消息大小限制
fetch.message.max.bytes = 1024 * 1024
 
# true 时, Consumer 会在消费消息后将 offset 同步到 zookeeper ,这样当 Consumer 失败后,新的 consumer 就能从 zookeeper 获取最新的 offset
auto.commit.enable = true
# 自动提交的时间间隔
auto.commit.interval.ms = 60 * 1000
 
# 用于消费的最大数量的消息块缓冲大小,每个块可以等同于 fetch.message.max.bytes 中数值
queued.max.message.chunks = 10
 
# 当有新的 consumer 加入到 group , 将尝试 reblance, partitions 的消费端迁移到新的 consumer , 该设置是尝试的次数
rebalance.max.retries = 4
# 每次 reblance 的时间间隔
rebalance.backoff.ms = 2000
# 每次重新选举 leader 的时间
refresh.leader.backoff.ms
 
# server 发送到消费端的最小数据,若是不满足这个数值则会等待直到满足指定大小。默认为 1 表示立即接收。
fetch.min.bytes = 1
# 若是不满足 fetch.min.bytes 时,等待消费端请求的最长等待时间
fetch.wait.max.ms = 100
# 如果指定时间内没有新消息可用于消费,就抛出异常,默认 -1 表示不受限
consumer.timeout.ms = -1
 
#############################Producer#############################
# 核心的配置包括:
# metadata.broker.list
# request.required.acks
# producer.type
# serializer.class
 
# 消费者获取消息元信息 (topics, partitions and replicas) 的地址 , 配置格式是: host1:port1,host2:port2 ,也可以在外面设置一个 vip
metadata.broker.list
 
# 消息的确认模式
# 0 :不保证消息的到达确认,只管发送,低延迟但是会出现消息的丢失,在某个 server 失败的情况下,有点像 TCP
# 1 :发送消息,并会等待 leader 收到确认后,一定的可靠性
# -1 :发送消息,等待 leader 收到确认,并进行复制操作后,才返回,最高的可靠性
request.required.acks = 0
 
# 消息发送的最长等待时间
request.timeout.ms = 10000
# socket 的缓存大小
send.buffer.bytes=100*1024
# key 的序列化方式,若是没有设置,同 serializer.class
key.serializer.class
# 分区的策略,默认是取模
partitioner.class=kafka.producer.DefaultPartitioner
# 消息的压缩模式,默认是 none ,可以有 gzip snappy
compression.codec = none
# 可以针对默写特定的 topic 进行压缩
compressed.topics=null
# 消息发送失败后的重试次数
message.send.max.retries = 3
# 每次失败后的间隔时间
retry.backoff.ms = 100
# 生产者定时更新 topic 元信息的时间间隔 ,若是设置为 0 ,那么会在每个消息发送后都去更新数据
topic.metadata.refresh.interval.ms = 600 * 1000
# 用户随意指定,但是不能重复,主要用于跟踪记录消息
client.id=""
 
# 异步模式下缓冲数据的最大时间。例如设置为 100 则会集合 100ms 内的消息后发送,这样会提高吞吐量,但是会增加消息发送的延时
queue.buffering.max.ms = 5000
# 异步模式下缓冲的最大消息数,同上
queue.buffering.max.messages = 10000
# 异步模式下,消息进入队列的等待时间。若是设置为 0 ,则消息不等待,如果进入不了队列,则直接被抛弃
queue.enqueue.timeout.ms = -1
# 异步模式下,每次发送的消息数,当 queue.buffering.max.messages queue.buffering.max.ms 满足条件之一时 producer 会触发发送。
batch.num.messages=200
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值