KAFKA设计之CONSUMER

本文深入探讨Kafka Consumer的工作原理,包括拉数据与推数据的优缺点,消费者位置的管理,以及如何利用其特性进行离线数据加载。消费者位置以偏移量形式存储,允许回滚至旧位置解决错误。此外,Kafka Consumer支持与Hadoop的高效集成,实现批量数据处理。
摘要由CSDN通过智能技术生成

KAFKA CONSUMER

说明

摘自官方文档,自己按照大概意思翻译的
http://kafka.apache.org/documentation/#theconsumer

正文

“推数据”还是“拉数据”

推数据的话,推什么数据和推的频率都要由broker控制,最终我们要达到的目的其实是在最短的时间内消费最多的数据,当推数据的频率很大时,很容易压垮consumer,例如收到攻击的时候。
拉数据的话还可以更积极地处理更多的数据,如果是推数据的话,需要了解下游consumer的状态,同步这些状态信息会造成浪费。
拉数据的缺点如果broker都没有数据了,可是consumer还是需要频繁地去查看broker是否有数据。为了避免这个,可以用参数控制允许consumer请求的频率减小,知道有数据到了broker(或者到broker的数据达到一定量时才处理)
producer会本地存一份,broker再去拉取,就类似是一个“store-and-forward”的角色。当有成千上万个producer时,这种模式推展性就很好,运维起来也不会很难。

消费者的位置

大多数的消息系统都是给了消费者信息后,本地保存一份,然后等到消费者有通知了,更新信息的元数据。这样做很实用,broker一知道消费者的处理状态后马上删除,保持了信息队列的大小。当消息发送出去后&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值