kafka常见参数配置

Broker 端参数

  • auto.create.topics.enable:是否允许自动创建 Topic。

建议最好设置成 false,即不允许自动创建 Topic。线上环境里面有很多名字稀奇古怪的 Topic,大概都是因为该参数被设置成了 true 的缘故。

  • unclean.leader.election.enable:是否允许 Unclean Leader 选举。

关闭 Unclean Leader 选举的。何谓 Unclean?只有保存数据比较多的那些副本才有资格竞选,那些落后进度太多的副本没资格做这件事。

现在出现这种情况了:假设那些保存数据比较多的副本都挂了怎么办?我们还要不要进行 Leader 选举了?此时这个参数就派上用场了。

如果设置成 false,那么就坚持之前的原则,坚决不能让那些落后太多的副本竞选 Leader。这样做的后果是这个分区就不可用了,因为没有 Leader 了。反之如果是 true,那么 Kafka 允许你从那些“跑得慢”的副本中选一个出来当 Leader。这样做的后果是数据有可能就丢失了,因为这些副本保存的数据本来就不全。

这个参数在最新版的 Kafka 中默认就是 false,社区对这个参数的默认值来来回回改了好几版了,鉴于我不知道你用的是哪个版本的 Kafka,所以建议你还是显式地把它设置成 false 吧。

  • auto.leader.rebalance.enable:是否允许定期进行 Leader 选举。

设置它的值为 true 表示允许 Kafka 定期地对一些 Topic 分区进行 Leader 重选举,当然这个重选举不是无脑进行的,它要满足一定的条件才会发生。严格来说它与上一个参数中 Leader 选举的最大不同在于,它不是选 Leader,而是换 Leader!比如 Leader A 一直表现得很好,但若auto.leader.rebalance.enable=true,那么有可能一段时间后 Leader A 就要被强行卸任换成 Leader B。

换一次 Leader 代价很高的,原本向 A 发送请求的所有客户端都要切换成向 B 发送请求,而且这种换 Leader 本质上没有任何性能收益,因此我建议你在生产环境中把这个参数设置成 false。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kafka Producer的配置参数用于设置生产者的各项行为和属性。下面是一些常用的Kafka Producer配置参数及其详细解释: 1. bootstrap.servers:指定Kafka集群的初始连接地址,格式为`host1:port1,host2:port2,...`。 2. acks:指定Producer收到确认消息的模式。可选值有:"all"(所有副本都确认),"0"(不需要确认),"1"(只需 Leader 确认)。默认值为"1"。 3. retries:指定在发生发送错误时重试的次数。 4. batch.size:指定批量发送消息的大小,以字节为单位。当待发送的消息大小达到这个阈值时,Producer会进行批量发送。 5. linger.ms:指定Producer等待更多消息加入批处理的时间,以毫秒为单位。即使消息大小未达到`batch.size`,如果等待时间超过了该参数设定的阈值,Producer也会发送当前可用的消息。 6. buffer.memory:指定Producer端内存缓冲区的大小,以字节为单位。该缓冲区用于存储尚未发送到服务器的消息。 7. key.serializer:指定用于序列化消息键的序列化器类。 8. value.serializer:指定用于序列化消息值的序列化器类。 9. compression.type:指定消息压缩类型。可选值有:"none"(不压缩),"gzip","snappy","lz4"。 10. max.in.flight.requests.per.connection:指定在收到服务器的确认之前,Producer可以发送的未确认请求的最大数量。较高的值可以提高吞吐量,但可能会增加延迟。 11. max.block.ms:指定在Producer缓冲区已满的情况下,Producer.send()方法的最大阻塞时间。 以上仅是一些常见配置参数Kafka Producer还提供了很多其他可用的配置选项。你可以根据自己的需求来选择适合的参数进行配置

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值