fluentd采集数据到kafka时的版本问题

fluentd采集数据到kafka时的版本问题

在使用fluentd采集数据到kafka时,一直不通,碰到了很多报错。
fluentd版本为:1.2.5
fluent-plugin-kafka版本为:0.7.8
kafka版本为:0.9
最开始碰到了这个报错:

这是因为没有配置default_topic,使用下面的配置指定topic就可以了。

但是后面还是报错:

后来看网上说是ruby-kafka库的原因,于是就写了一个脚本:

运行后,发现报同样的错误,后再查看ruby-kafka的文档:

Compatibility

kafka Producer API Consumer API
Kafka 0.8 Full support in v0.4.x Unsupported
Kafka 0.9 Full support in v0.4.x Full support in v0.4.x
Kafka 0.10 Full support in v0.5.x Full support in v0.5.x
Kafka 0.11 Limited support Limited support
Kafka 1.0 Limited support Limited support

这个表也容易给人误解,通常我们会以为高版本的ruby-kafka会支持低版本的kafka,比如居然ruby-kafka 0.4.x支持kafka 0.9,那理所当然,ruby-kafka 0.4.x支持kafka 0.9和0.10吧。但其实这是一一对应的,主要是因为kafka不同版本之间接口的差别过大。
找到原因后就容易了,更换ruby-kafka及fluent-plugin-kafka的版本:

最终支持kafka 0.9的ruby-kafka及fluent-plugin-kafka版本为:

注意:fluent-plugin-kafka 0.7.x的版本不能配合ruby-kafka 0.4.x版本工作。

参考:
https://github.com/zendesk/ruby-kafka
https://blog.csdn.net/mtj66/article/details/79209302

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

14 + 8 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据