Kafka高吞吐率的两点保障

1.消费端

       Kafka会为每个Consumer Group保留一些metadata信息——当前消费的消息的position,也即offset。这个offset是由consumer控制的,正常情况下,consumer会在消费完一条消息后递增该offset,consumer也可以把offset设置为一个较小的值重新消费一些消息。因为offset由consumer控制,所以broker是无状态的,不需要记录哪些消息被哪些consumer消费过,也不需要通过broker去保证同一个consumer group只有一个consumer能消费某一条消息,因此不需要锁机制,这为Kafka的高吞吐率提供了有力保障。

2.生产端

       Producer发送消息到broker时,会根据Paritition机制选择将其存储到哪一个Partition。如果Partition机制设置合理,所有消息可以均匀分布到不同的Partition里,这样就实现了负载均衡。如果一个Topic对应一个文件,那这个文件所在的机器I/O将会成为这个Topic的性能瓶颈,而有了Partition后,不同的消息可以并行写入不同broker的不同Partition里,极大的提高了吞吐率。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 姓名:周小蓬 16019110037 转载自:http://blog.csdn.net/YChenFeng/art...
    aeytifiw阅读 34,743评论 13 425
  • Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方...
    Alukar阅读 3,099评论 0 43
  • 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O...
    高广超阅读 12,882评论 8 167
  • 目标 高吞吐量来支持高容量的事件流处理 支持从离线系统加载数据 低延迟的消息系统 持久化 依赖文件系统,持久化到本...
    jiangmo阅读 1,321评论 0 4
  • 2018/01/06 今天去义大世界逛一逛,出发之前粑粑带小朋友去买了布丁,当小朋友知道可以吃布丁的时候都开心的蹦...
    爱生活绘分享阅读 244评论 0 0