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. RocketMQ4.7.1双主双从集群搭建

    导读 上一集我们已经学会了SpringBoot整合RocketMQ点我直达,今天我们来搭建双主双从高性能MQ服务集群. 简介 主从架构 Broker角色,Master提供读写,Slave只支持读,Co ...

  2. Android 教你如何发现 APP 卡顿

    最近部门打算优化下 APP 在低端机上的卡顿情况,既然想优化,就必须获取卡顿情况,那么如何获取卡顿情况就是本文目的. 一般主线程过多的 UI 绘制.大量的 IO 操作或是大量的计算操作占用 CPU,导 ...

  3. python之冒泡排序改进

    冒泡排序改进 关注公众号"轻松学编程"了解更多. 一.普通冒泡排序 [22,3,1,6,7,8,2,5] 普通冒泡排序 思路: 第一趟排序 从下标0开始,取出对应的值22 22和3 ...

  4. 华为云FusionInsight MRS:助力企业构建“一企一湖,一城一湖”

    摘要:华为云FusionInsight MRS新一代的数据湖,让大数据越用越快.越用越易.越用越稳.越用越省!让数据价值近在眼前! 10月30日,以"携手共赢·数创未来"为主题的第 ...

  5. 我的第二次C语言作业

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11422 这个作业要求在哪里 https://www.cnblog ...

  6. Java_基础(一)

    注释 单行注释: // 多行注释: /*开头, */结尾, 可跨行, 可嵌入 public static void main(String[] args/* 哈哈 */) 文档注释: /** 开头, ...

  7. 【QT】子类化QThread实现多线程

    <QThread源码浅析> 子类化QThread来实现多线程, QThread只有run函数是在新线程里的,其他所有函数都在QThread生成的线程里.正确启动线程的方法是调用QThrea ...

  8. SpringBoot进阶教程(六十四)注解大全

    在Spring1.x时代,还没出现注解,需要大量xml配置文件并在内部编写大量bean标签.Java5推出新特性annotation,为spring的更新奠定了基础.从Spring 2.X开始spri ...

  9. CSS3之animation属性

    CSS中的animation属性可用于为许多其他CSS属性设置动画,例如颜色,背景色,高度或宽度. 每个动画都需要使用@keyframes这种at-rule语句定义,然后使用animation属性来调 ...

  10. react 中组件状态的一些理解

    组件状态:即 state 只有当state发生变化时,组件才会更新. 当一个html标签的值依赖于state的值得时候,如果state的值没有更新时,这个标签的值无论如何也是不会更新的. 看下面示例: ...