IT袋

当前位置:主页 > 经验教程 > 建站编程 >

Kafka

Kafka Consumer消费消息和Rebalance机制

时间:2024-03-20 15:00:54 来源:IT袋 作者:马勇
导读:Kafka,本文导读:Kafka方面的知识,请看下面详细的介绍。 Kafka Consumer Kafka 有消费组的概念,每个消费者只能消费所分配到的分区的消息,每一个分区只能被一个消费组中的一个

Kafka

本文导读:Kafka方面的知识,请看下面详细的介绍。

Kafka Consumer

Kafka 有消费组的概念,每个消费者只能消费所分配到的分区的消息,每一个分区只能被一个消费组中的一个消费者所消费,所以同一个消费组中消费者的数量如果超过了分区的数量,将会出现有些消费者分配不到消费的分区。

消费组与消费者关系如下图所示:

Kafka

consumer group

Kafka Consumer Client 消费消息通常包含以下步骤:

  1. 配置客户端,创建消费者
  2. 订阅主题
  3. 拉去消息并消费
  4. 提交消费位移
  5. 关闭消费者实例

Kafka

过程

因为 Kafka 的 Consumer 客户端是线程不安全的,为了保证线程安全,并提升消费性能,可以在 Consumer 端采用类似 Reactor 的线程模型来消费数据。

Kafka

消费模型

Kafka consumer参数

  • bootstrap.servers:连接 broker 地址,host:port格式。
  • group.id:消费者隶属的消费组。
  • key.deserializer:与生产者的key.serializer对应,key 的反序列化方式。
  • value.deserializer:与生产者的value.serializer对应,value 的反序列化方式。
  • session.timeout.ms:coordinator 检测失败的时间。默认 10s 该参数是 Consumer Group 主动检测 (组内成员 comsummer) 崩溃的时间间隔,类似于心跳过期时间。
  • auto.offset.reset:该属性指定了消费者在读取一个没有偏移量后者偏移量无效(消费者长时间失效当前的偏移量已经过时并且被删除了)的分区的情况下,应该作何处理,默认值是 latest,也就是从最新记录读取数据(消费者启动之后生成的记录),另一个值是 earliest,意思是在偏移量无效的情况下,消费者从起始位置开始读取数据。
  • enable.auto.commit:否自动提交位移,如果为false,则需要在程序中手动提交位移。对于精确到一次的语义,最好手动提交位移
  • fetch.max.bytes:单次拉取数据的最大字节数量
  • max.poll.records:单次 poll 调用返回的最大消息数,如果处理逻辑很轻量,可以适当提高该值。但是max.poll.records条数据需要在在 session.timeout.ms 这个时间内处理完 。默认值为 500
  • request.timeout.ms:一次请求响应的最长等待时间。如果在超时时间内未得到响应,kafka 要么重发这条消息,要么超过重试次数的情况下直接置为失败。

相关阅读

  • 数据库设计分为哪几个阶段 如何设计数据库

    数据库设计分为哪几个阶段 如何设计数据库

    您可能不了解数据库设计分为哪几个阶段的IT小经验,一起跟随小编看看吧! 数据库设计是一个复杂的过程,通常分为以下几个阶段: 需求分析 在这个阶段,数据库设计师需要与客户或业务团

  • FTP介绍及常见命令 FTP常用命令及简介

    FTP介绍及常见命令 FTP常用命令及简介

    如果想知道FTP介绍及常见命令方面的内容,很不错的方法小知识,建议收藏哦! File Transfer Protocol(FTP)是一种在客户端和服务器之间传输文件的标准网络协议。 FTP允许用户上传和下载文件,

  • 网页首页内容模板在哪 免费html网页模板

    网页首页内容模板在哪 免费html网页模板

    本文导读:网页首页内容模板在哪和免费html网页模板的方法内容,接下来IT袋小编就来介绍。 很多刚从事公众号运营的小伙伴,对公众平台的功能设置和使用方法还不是很了解,尤其是一些不

  • 建站是什么专业 建网站的流程讲解

    建站是什么专业 建网站的流程讲解

    今天分享:建站是什么专业和建网站的流程讲解的教程内容,一起跟随小编看看吧! 公司建站需要了解什么? 做任何事情都是先要有一定的了解后才可以开始着手进行。下面我们一起学习一下