Kafka Consumer组件的功能剖析和常用组件详情

  • 时间:2019-06-11 05:18 作者:皮皮裴 来源:皮皮裴 阅读:601
  • 扫一扫,手机访问
摘要:Kafka组件包含Producer、Broker、Consumer和Zookeeper。本文将详情Kafka Consumer组件的功能以及设计要点。Kafka Consumer订阅Kafka的topic,并主动从Kafka Broker拉取消息进行解决。每个Kafka Consumer自己维护最后

Kafka组件包含Producer、Broker、Consumer和Zookeeper。本文将详情Kafka Consumer组件的功能以及设计要点。

Kafka Consumer订阅Kafka的topic,并主动从Kafka Broker拉取消息进行解决。每个Kafka Consumer自己维护最后一个已读取消息的offset,并在下次请求从这个offset开始的消息,这一点不同于ZeroMQ、RabbitMQ等其余消息队列,这种基于pull的机制大大降低了Broker的压力,使得Kafka Broker的吞吐率很高。

Kafka允许多个Consumer构成一个Consumer Group,共同读取同一topic中的数据,提高数据读取效率。同一Consumer Group下不同的Consumer对某个topic的消息消费是不会重复的。Kafka可自动为同一Group中的Consumer分摊负载,从而实现消息的并发读取,并在某个Consumer发生故障时,自动将它解决的partition转移给同Group中其余Consumer解决。

因为Kafka在大数据领域应用起来越广泛,很多大数据 开源系统均主动添加了对Kafka的支持,几种常用的Kafka Consumer组件如下图所示:

Kafka Consumer组件

Flume Kafka Source:Flume软件包中内置Kafka Consumer,可将从 Kafka Broker中读取的数据,写入Flume Channel。

Kafka-Storm:Storm软件包中内置Kafka Consumer,被封装到Storm Spout中,可从Kafka Broker中读取数据,发送给后面Storm Bolt。

Kafka-Spark Streaming:Spark Streaming软件包中内置Kafka Consumer,它可从Kafka读取数据,并将其转化为微批解决,并进一步交由Spark引擎解决。

LinkedIn Camus:LinkedIn开源的Hadoop-kafka连接件,可将Kafka中的数据导入Hadoop。

  • 全部评论(0)
手机二维码手机访问领取大礼包
返回顶部