我们应该更新我们的Scala Kafka客户端库依赖项(当前为0.10.2)以匹配代理的Kafka版本(v1.1.0)吗?
从版本0.10.2开始,Java客户端(生产者和使用者) 已具备与较早经纪人进行交流的能力。版 0.10.2客户可以与0.10.0版或更高版本的代理进行对话
当客户端API版本落后于服务器版本时,是否有任何不利影响?更重要的是,我们可以安全地将Kafka客户端API库从0.10.2更新到1.10吗?
答案 0 :(得分:0)
尽管经纪人现在与较旧的客户端兼容,但是使用较旧的客户端存在一些缺点。
主要是消息转换。在1.1和0.10.2之间,记录格式已更改。因此,默认情况下,较旧的客户端将强制代理在生成和使用时转换消息。转换占用大量内存,并降低了性能。参见http://kafka.apache.org/documentation/#upgrade_11_message_format
那么显然老客户无法使用新功能。在0.10.2和1.1之间,有很多不错的功能,例如Exactly Once semantics,better authentication feedback on failure,管理员操作等