29 | Kafka动态配置了解下?
该思维导图由 AI 生成,仅供参考
什么是动态 Broker 参数配置?
- 深入了解
- 翻译
- 解释
- 总结
Kafka 1.1.0版本引入了动态Broker参数配置,这一重要技术功能允许用户在无需重启Broker的情况下动态调整参数值,极大地提高了管理效率。动态参数保存在ZooKeeper中,具有不同的保存机制和优先级。文章介绍了如何使用Kafka自带的kafka-configs脚本来配置动态参数,包括设置、查看和删除参数。常用的动态参数包括日志留存时间、线程池大小、SSL相关参数以及副本拉取速度等,这些参数的动态调整能够应对实时变化的需求。动态Broker参数配置为Kafka用户提供了更灵活、高效的管理方式,极大地降低了运维成本。社区也在讨论将更多参数升级为动态参数,期待未来的发展。
《Kafka 核心技术与实战》,新⼈⾸单¥68
全部留言(19)
- 最新
- 精选
- 钱请问老师,kafka动态调整配置的实现原理是啥?它怎么做到不需重启broker就能使配置生效的?
作者回复: 把配置保存在ZooKeeper中,然后动态监听这个变更,一旦监听到立即处理
2019-08-18217 - cricket1981follower为什么会拉取副本慢?它不负责读写只专心同步副本数据,增加线程就有用吗?会增加leader负担吗?
作者回复: 因为是异步的网络请求。一个Broker上可能有很多follower副本,增加线程可以均匀分散这些follower副本来去任务
2019-08-0912 - 第一片心意动态更改之后的参数,如果某个broker重启的话,那些动态修改过的参数会失效吧,毕竟broker启动时,会读取 config/server.propertyes 文件的内容。
作者回复: 不会失效。动态参数配置在ZooKeeper中
2019-12-1611 - cricket1981怎样知道什么时候该调整这两组线程池大小?
作者回复: 可以监控请求队列的大小
2019-08-096 - 无菇朋友老师 请问下 怎么查看每个broker的请求积压情况?
作者回复: 可以看看broker端的请求队列的JMX指标
2019-08-205 - 外星人您好,我们生产上num.io.threads已经提高到了24,但是对应idle还是在0.3左右,是不是kafkaapi哪个接口处理慢了?这种情况一般如何定位啊?谢谢
作者回复: 大概率是PRODUCE和FETCH请求。不过你最好结合kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request={Produce|FetchConsumer|FetchFollower}确认下是否需要调整num.network.threads
2019-08-2221 - 外星人你好,我们用的版本是1.1,请问下,动态参数有没有bug啊?
作者回复: 目前没有太严重的bug
2019-08-081 - 玉剑冰锋这么看的话,是不是不管是动态参数还是静态参数,集群中的broker配置是可以不一样的对吧?我用0.11(测试环境),环境中三台kafka磁盘容量不一样,导致的问题就是另外两台磁盘已经到了警戒值,剩下那一台磁盘始终用不上,如果可以的话我直接调整一台的保留时间就好了
作者回复: 每个Broker可以是不同的配置。
2019-08-0821 - yic胡老师,有个问题想请教一下,我们项目想通过广播消息给下游服务。用到了kafka,消费消息的服务每个实例都设置自己的消费组groupId,如:server_prefix_IP_PORT。这样的话,每次服务部署,消费组的groupId都会发生变化。那之前的消费者组信息却还保留在系统中。这样就导致kafka监控时,还能看到老的消费者组相关指标。请问有什么好的方式处理这个问题吗?
作者回复: 消费者组的名字不太适合总是动态修改,因为每次都相当于创建了一个新的消费者组。当然,如果一定要这么用,你可以手动把消费者组的信息删除掉(高版本的Kafka提供了这个功能)
2021-06-182 - DK胡老师好,我们通过canal将db的数据发送到kafka(kafka_2.11-1.1.1),设置的log.retention.hours=72,保留3天,但是偶尔出现某些topic的partion会删除当天的数据文件导致数据丢失。查看当时的kafka日志 [2021-03-15 11:06:51,824] INFO [Log partition=um.am_gongzhonghao_scene_user-0, dir=/apps/srv/kafka/data] Deleting segments LogSegment(baseOffset=73347921, size=470345801, lastModifiedTime=1615777551000, largestTime=1615518241494) (kafka.log.Log) 发现lastModifiedTime是更新了的,但largestTime没有更新,1615518241494对应的时间为“2021-03-12 11:04:01”,刚好是3天前。不知道这种情况胡老师是否遇到过。
作者回复: 查查是不是canal客户端的问题,比如发送的kafka消息没有时间戳?
2021-05-11