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. 【转】Setting up SDL Extension Libraries on Windows

    FROM: http://lazyfoo.net/tutorials/SDL/06_extension_libraries_and_loading_other_image_formats/window ...

  2. java log4j 的一个bug

    java项目中使用log4j记录日志几乎成了标配, 最近一个项目中出了个问题  现象是这样的:  不连vpn程序一切正常,连上VPN启动程序 直接异常退出, 错误日志直接指向了 log4j 库 org ...

  3. NB-IoT的eDRX模式主要目的是什么

    传统的2.56秒寻呼间隔对UE的电量消耗较大,NB-IoT的eDRX模式主要目的就是支能够持更长周期的寻呼监听,从而达到省电的目的.而在下行数据发送频率小时,通过核心网和用户终端的协商配合,用户终端调 ...

  4. cookie与session的概念与区别

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. 史上最全的Kuberenetes 常用命令手册

    1.0 k8s 集群状态检查 # 查看集群信息 kubectl cluster-info systemctl status kube-apiserver systemctl status kubele ...

  6. 面经手册 · 第16篇《码农会锁,ReentrantLock之公平锁讲解和实现》

    作者:小傅哥 博客:https://bugstack.cn 专题:面经手册 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 Java学多少才能找到工作? 最近经常有小伙伴问我,以为我的经验来看 ...

  7. Linux开机启动顺序启动顺序及配置开机启动

    Linux:开机启动顺序启动顺序及配置开机启动 开机启动顺序 1.加载内核 2.启动 init(/etc/inittab) pid=1 3.系统初始化 /etc/rc.d/rc.sysinit 4.运 ...

  8. Docker(11)- docker ps 命令详解

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 列出容器 语法格式 doc ...

  9. CF1137A/1138C Skyscrapers

    排序+数据结构 将每一行(每一列)都排个序,并将原位置的在这一行(列)中的排行记录在一个数组里 注意,要将楼高度相同的元素看作一个元素 如 1 1 4 5 6 8 8,则排行是      1 1 2 ...

  10. Python调用Java(基于Ubuntu 18.04)

    最近实习,需要使用Python编程,其中牵涉到一些算法的编写.由于不熟悉Python,又懒得从头学,而且要写的算法自己之前又用Java实现过,就想着能不能用Python调用Java.经过查找资料,方法 ...