29 kafka动态配置

为什么需要动态配置

线上运行的kafka broker修改配置需要重启的话,影响比较大。需要一个不需要重启就能使参数生效的功能

使用的场景

配置优先级:
per-broker参数 > cluster-wide参数 > static参数 > 默认参数

1.动态调整network线程数和工作线程数来扩缩容
2.修改日志的留存时间。不可能完美预估所有业务的消息留存时长
3.ssl相关参数。能创建过期时间很短的SSL证书,调整时kafka会重新配置socket连接并更新keystore,新的连接会使用新的keystore。
kafka如何使用的ssl[TODO]
4.调整follower向leader拉消息的线程数

评论区问题

1.动态配置的实现原理[TODO]
配置保存在zookeeper中,动态监听这个变更
2.follower为什么会拉取副本慢?它不负责读写只专心同步副本数据,增加线程就有用吗?
拉取是异步的网络请求。一个Broker上可能有很多follower副本,增加线程可以均匀分散这些follower副本来去任务
kafka follower拉取副本过程细节[TODO],比如follower拉取消息的间隔时间配置,请求是异步的?
3.怎样知道什么时候该调整这两组线程池大小?
可以监控请求队列的大小,可以看看broker端的请求队列的JMX指标

你可能感兴趣的:(kafka核心技术与实战,kafka)