前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kafka分区、组消费模式源码解析

Kafka分区、组消费模式源码解析

作者头像
JavaEdge
发布2021-02-23 15:06:05
2950
发布2021-02-23 15:06:05
举报
文章被收录于专栏:JavaEdge

1 分区消费模式

直接由客户端(任一语言编写)使用Kafka提供的协议向服务器发送RPC请求获取数据,服务器接受到客户端的RPC请求后,将数据构造成RPC响应,返回给客户端,客户端解析相应的RPC响应获取数据。

Kafka支持的协议众多,使用比较重要的有:

  • 获取消息的FetchRequest和FetchResponse
  • 获取offset的OffsetRequest和OffsetResponse
  • 提交offset的OffsetCommitRequest和OffsetCommitResponse
  • 获取Metadata的Metadata Request 和 Metadata Response
  • 生产消息的 ProducerRequest 和 ProducerResponse

1.1 分区消费模式服务器端源码过程

2 组消费者模式

2.1 流程

3 总结

3.1 分区消费模式特点

  • 指定消费topic、partition和offset通过向服务 器发送RPC请求进行消费
  • 需要自己提交offset
  • 需要自己处理各种错误,如:leader切换错误
  • 需自行处理消费者负载均衡策略

3.2 组消费模式特点

  • 最终也是通过向服务器发送RPC请求完成的(和分区消费模式一样)
  • 组消费模式由Kafka服务器端处理各种错误,然后将消息放入队列再封装为迭代器(队列为FetchedDataChunk对象),客户端只需在迭代器上迭代取出消息
  • 由Kafka服务器端周期性的通过scheduler提交当前消费的offset,无需客户端负责
  • Kafka服务器端处理消费者负载均衡
  • 监控工具Kafka Offset Monitor和Kafka Manager均是基于组消费模式

所以,尽可能使用组消费模式,除非需要

  • 自己管理offset,比如想实现消息投递的其他语义
  • 自己处理各种错误,根据自己业务的需求
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 分区消费模式
    • 1.1 分区消费模式服务器端源码过程
    • 2 组消费者模式
      • 2.1 流程
      • 3 总结
        • 3.1 分区消费模式特点
          • 3.2 组消费模式特点
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档