栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Kafka(三)——Consumer

Kafka(三)——Consumer

1、消费方式

       consumer采用pull(拉)的模式从broker中获取数据,pull的优势是可以根据消费者自身的消费能力获取数据,缺点是,如果kafka没有数据,消费者可能会陷入循环中,一直返回空数据。

        因为push的模式很难适应消费者速率不同的消费者,因为消息发送速率是由broker决定的。

2、分区分配策略
    一个消费者组(consumer group)里有多个消费者(consumer),一个主题(topic)有多个分区(partition),所以会有分区分配策略。

kafka有两种分配策略,一个是RoundRobin(轮循发送),一种是Range(范围)。

 

1.RoundRobin(轮循送)

        轮循发送,重点关注消费者组,会将所有消费者组订阅的数据组合起来全部进行排序,然后轮循发送到各个组中。这种模式下,可能会出现某一个组中的有些消费者收到了未订阅的主题的数据。

        例如:A B为组1,C为组2,当采用轮循的模式,会将两组中消费者订阅的所有主题中的数据组合排序起来,然后轮循发送到1 2 两组中的A B C消费者,这种情况下会造成可能将 T2主题的数据发送到 1 组中的消费者A中去。

2.Range(范围)

        范围发送,这种模式重点先关注哪一个消费者关注的主题,然后在关注组中。

       例如:如上图采用Range模式,由于订阅T1主题的是消费者 A B C ,而消费者 C 是消费者2组中的,只有C 一个消费者,所以,会将 T1 主题的数据发送给 C ,由于A B C 订阅主题T1 ,A B同属于消费者组1,所以会将 T1 主题的数据发送给 A B ,A分到T1主题的0和1,B分到 2 ,然后消费组1中的消费者B,订阅了T2主题,则会将T2主题的数据也发送给B。

3、事务

        kafka的事务,保证了kafka的生产者精准一次性写入kafka集群,消费者精准一次性读取数据,生产和消费可以跨分区、跨会话,要么都成功,要么都失败。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/696249.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号