作者回复: 1. 其实我也没太明白您的意思:) “旧版本的服务端不适用新版本的客户端 所以建议保持一致”,不是挺自然的结论吗。。。。
2. 客户端也有版本号,和broker端是一样的。比如Java客户端,如果我们使用Gradle的话,就类似于这样:
compile group: 'org.apache.kafka', name: 'kafka-clients', version: '2.2.1'
作者回复: 嗯嗯,之前在做咨询的时候发现过两个问题:1. 很多人碰到的问题实际上已经是新版本解决的bug;2. 客户端/服务器端版本不一致导致的性能问题
因此觉得写一篇版本的文章还是有点必要的。
作者回复: 1. Kafka提供了命令行脚本可以执行producer和consumer的性能测试,主要指标还是TPS,延时
2. 增加broker很简单,也不会对现有业务有影响。关键是做好迁移计划——比如避开业务高峰时刻,如果迁移对业务影响最小
作者回复: 嗯嗯,请求版本号偏底层的设计了,一般用户用不到。其实客户端和服务器端版本的差异很大一部分也是请求版本号的差异
作者回复: 嗯嗯,可以查一下ZooKeeper中是否存在大量session超时的情况。不过还是建议升级吧,听着很像是一个已知的bug。如果暂时不能升级,可以尝试调低replica.fetch.max.bytes的值试试。
作者回复: 如果是新环境,也许可以采用最新版本。但如果是要升级的话就要考虑这些问题了
作者回复: 目前使用clients端API无法获取。。。。
作者回复: golang的客户端到底使用的是新版本consumer还是老版本的consumer需要去到对应的官网上确定:)
作者回复: 不矛盾。保持版本一致是任何时候都要尽力保持的。如果你依然使用0.8.x版本,那么最好使用Scala producer,而不是java producer