• 集群级Kafka数据消费的挑战与实践


    集群级Kafka数据消费的挑战与实践

    Kafka是一款高吞吐量的分布式发布订阅消息系统,被广泛于日志收集、消息系统、流式处理等应用场景下。通常情况下,用户的服务只会消费kafka集群中少数topics,并采用消费组的形式来多实例拉取消息。采用消费组的优点是,很容易横向扩容消费者实例的数量,同时当某个消费实例crash后,它之前消费的partitions会迁移到其他正常的实例上,从而实现故障的自动恢复。

    然而,对于云服务消费用户kafka数据的场景(比如,SLS的kafka数据导入服务),采用消费组的形式可能并不适合,因为用户希望云服务消费的并不总是少量的topics,而有可能是整个kafka集群的数据。那么为何消费集群级别的kafka数据不适合采用消费组呢?

    消费组工作过程

    下图显示了消费组的基本工作过程,可以看到,同一消费组中的消费实例会均摊订阅关联的topic partitions(其中Group A订阅了Topic A和Topic B,Group B订阅了Topic B)。这样的好处是容易根据partitions的数量横向扩容consumer实例,比如Topic B中的partition 0产生的数据量过大,C5消费不过来,这时可以通过增加Topic B partition的数量以及Group B的消费实例数量来解决消息堆积的问题。

    图1. 消费组工作原理

    另外,采用消费组的方式,能够在部份消费实例不可用时自动实现故障转移。比如&#

  • 相关阅读:
    PHP curl Bad Request
    man-cobbler
    Feign配置应用
    记录一个@Transaction注解引发的bug
    私有云OpenStack保姆级教学
    Pytorch CUDA CPP简易教程,在Windows上操作
    乘风破浪,遇见未来新能源汽车(Electric Vehicle)之特斯拉提车必须知道的十个流程
    WebGL前景如何?
    Idea创建springboot项目
    Java中的容器(二) 双例集合
  • 原文地址:https://blog.csdn.net/ATYtian/article/details/126589719