kafka源vs avro源,用于使用flume将数据读写到kafka通道

htzpubme  于 2021-06-04  发布在  Flume
关注(0)|答案(1)|浏览(402)

在flume中,我有kafka通道,在那里我可以读写数据。如果我用avro源和avro接收器替换kafka源和kafka接收器,那么将数据读写到kafka通道的性能有什么不同?
在我看来,用avro source替换kafka source,我将无法从kafka代理的多个分区并行读取数据,因为在avro source的情况下没有指定使用者组。如果我错了,请纠正我。

vlf7wbxs

vlf7wbxs1#

在flume中,avro rpc源绑定到网络接口的指定tcp端口,因此在一台机器上运行的flume代理中只有一个avro源可以接收发送到此端口的事件。
avro源用于将两个或多个Flume代理连接在一起:一个或多个avroFlume连接到单个avro源。
正如您所指出的,使用kafka作为源允许多个消费群体接收事件。但是,我对flume 1.6.0的经验是,通过avrorpc而不是kafka将事件从一个flume代理推送到远程主机上的另一个flume代理更快。
因此,我完成了以下日志数据收集设置:
[flume agent on remote collected node]=avro rpc=>[flume agent in central cluster]=kafka=>[multiple consumer groups in central cluster]
通过这种方式,我获得了更好的日志摄取和处理吞吐量,还可以在远程站点和中心集群之间加密和压缩日志数据。但是,当flume在将来的版本中添加对kafka 0.9.0引入的新协议的支持时,这种情况可能会改变,这可能会使kafka更可用作具有远程数据收集节点的中央集群的前端接口(请参见此处)。

相关问题