offset存放在_consumer_offsets这个topic下

并且从0-49划分了50个分区:

consumer会在kafka集群的所有broker中选择一个broker作为consumer group的coordinator,用于实现组成员管理,消费分配方案制定以及提交位移等。

consumer提交位移的主要机制是通过向所属的coordinator发送位移提交请求来实现的。每个位移提交请求都会往_consumer_offsets对应分区上追加写入一条消息。

默认情况下,consumer是自动提交位移的,自动提交间隔是5秒,通过设置auto.commit.interval.ms参数可以控制自动提交的间隔.

参数:

bootstrap.servers:和producer一样多组逗号分隔,不管制定了几台机器,consumer启动后都能通过这些机器找到完整的broker列表,因此为该参数指定多台机器通常只是为了常规的failover使用。这样即使某一台broker挂掉了,consumer重启后依然能够通过该参数指定的其他broker连接kafka集群。

group.id:默认值空字符串,需显示指定,否则抛出invaildGroupIdException异常。

key.deserializer

value.deserializer

session.timeout.ms:非常重要的参数之一。

是consumer group检测组内成员发送崩溃的时间。假设设置5分钟,则当某个成员突然崩溃了,管理group的kafka组件coordinator有可能需要5分钟才能感知到这个崩溃。

另一重含义:consumer消息处理逻辑的最大时间--倘若consumer两次poll之间的间隔超过了该参数设置的阀值,那么coordinator就会认为这个consumer已经追不上组内其他成员的消费进度了。因此会将该consumer“踢出”组,改该consumer负责的分区也会被分配给其他consumer。

0.10.1.0版本拆分为 session.timeout.ms和max.poll.interval.ms,默认10秒。

max.poll.interval.ms:如上

auto.offset.reset:制定了无位移信息或者位移越界(即consumer要消费的消息的位移不再当前消息的日志合理区间范围)时,kafka的应对策略。earliest/latest/none

enable.auto.commit:该参数指定consumer是否自动提交位移

fetch.max.bytes:它指定了consumer端单次获取数据的最大子节数。

max.poll.records:默认500,控制单次poll调用返回的最大消息数。

heartbeat.interval.ms:当coordinate决定开启新一轮rebalance时,它会将这个决定以RWBALANCE_IN_PROGRESS异常的形式“塞进”consumer心跳请求的response中,这样其他成员拿到response后才能知道它需要重新加入group。这个过程越快越好,而这个参数就是用来做这件事情的。推荐设置一个比较低的值,让group下的其他consumer成员能够更快的感知新一轮rebalance开启了。

connections.max.idle.ms:kafka会定期的关闭空闲socket连接导致下一次consumer处理请求时需要重新创建连向broker的Socket连接。默认9分钟比较推荐设为-1,即不要关闭这些空闲连接

Kafka入门之consumer的更多相关文章

  1. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

  2. 【Kafka入门】Kafka基础结构和知识

    基本概念的总结 在基本的Kafka架构中,producer将消息发布到Kafka话题中,一个Kafka话题通常指消息的类别或者名称,Kafka话题被集群中一个充当Kafka server角色的 bro ...

  3. kafka 入门笔记 #1

    kafka 入门笔记(#1) 单机测试 下载版本,解压 tar -xzf kafka_2.11-0.10.1.1.tgz cd kafka_2.11-0.10.1.1 启动服务 Kafka用到了Zoo ...

  4. Kafka入门介绍

    1. Kafka入门介绍 1.1 Apache Kafka是一个分布式的流平台.这到底意味着什么? 我们认为,一个流平台具有三个关键能力: ① 发布和订阅消息.在这方面,它类似一个消息队列或企业消息系 ...

  5. Kafka入门 --安装和简单实用

    一.安装Zookeeper 参考: Zookeeper的下载.安装和启动 Zookeeper 集群搭建--单机伪分布式集群 二.下载Kafka 进入http://kafka.apache.org/do ...

  6. [Hadoop大数据]--kafka入门

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行“随机读写”的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? ...

  7. 转 Kafka入门经典教程

    Kafka入门经典教程 http://www.aboutyun.com/thread-12882-1-1.html 问题导读 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创建topic. ...

  8. Kafka 入门和 Spring Boot 集成

    目录 Kafka 入门和 Spring Boot 集成 标签:博客 概述 应用场景 基本概念 基本结构 和Spring Boot 集成 集成概述 集成环境 kafka 环境搭建 Spring Boot ...

  9. _00017 Kafka的体系结构介绍以及Kafka入门案例(0基础案例+Java API的使用)

    博文作者:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

随机推荐

  1. python框架Django中MTV之Model(数据模型)

    MTV框架之Model(数据模型) 关注公众号"轻松学编程"了解更多. 1.连接MySQL数据库 项目中的settings.py设置范例 # 配置数据库 DATABASES = { ...

  2. CSS中的position属性笔记

    一般有5个属性,分别是:static,absolute,relative,fixed,inherit static 自然定位:这个是默认值,没有定位,再设置top,rignt,bottom,left会 ...

  3. 基于gin的golang web开发:访问mysql数据库

    web开发基本都离不开访问数据库,在Gin中使用mysql数据库需要依赖mysql的驱动.直接使用驱动提供的API就要写很多样板代码.你可以找到很多扩展包这里介绍的是jmoiron/sqlx.另外还有 ...

  4. Git命令之diff

    工作区(working tree),暂存区(index /stage),本地仓库(repository) git跟不同的参数,比较不同的区间的版本. git diff:是查看working tree与 ...

  5. 【SpringCloud】07.应用间的通信

    应用间通信 HTTP vs RPC Spring Cloud (HTTP) Dubbo (RPC) 1.SpringCloud中服务间两种restful调用方式 RestTemplate Feign ...

  6. 用DOM和DOM4J写xml文件时,怎样设置xml文档的编码

    //在将xml文档传输出去时,利用Transformer中的setOutputProperty方法 TransformerFactory trans = TransformerFactory.newI ...

  7. 大厂是怎么进行SQL调优的?

    有情怀,有干货,微信搜索[三太子敖丙]关注这个不一样的程序员. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文章. ...

  8. gcc编译链接用到的环境变量

    PATH ----  可执行程序寻找路径 C_INCLUDE_PATH  ---- 头文件寻找路径 CPLUS_INCLUDE_PATH  --- g++ 头文件路径 LD_LIBRARY_PATH  ...

  9. Java入门基础知识点总结(详细篇)

    Java入门基础知识点总结(详细篇)~~~~~目录 1.1 图解 1.1.1 Java基础知识点 1.1.2 Java基础语法的相关内容 1.2 关键字 1.3 标识符 1.3.1 标识符概念 1.3 ...

  10. linux服务器远程网络开机(wake on lan)

    通过网络可以远程开关机,某些时候比较方便管理机器 检查服务器是否支持远程网络开机 [root@lab5101 ~]# ethtool eth0 Settings for eth0: Supported ...