kafka实战宝典:手动修改消费偏移量的两种方式

工作中遇到过消费端报错的问题:包括数据Invalid Message和Failed_to_UNcompress等报错信息,导致消费端的iterator损坏,直接造成消费进程挂掉,如果不能及时发现问题,需要手动跳过某些数据;

Kafka的偏移量的保存方式根据版本号的异同有3种方式:保存在zookeeper中、保存在kafka的topic(_consumer_offset)中、保存在自定义的存储系统中,

下面介绍前2

种修改方式

1、修改保存在zookeeper中的偏移量:

使用./zkCli.sh -server xxxx:2181 进入zk命令行模式,get对应的消费组的对应分区的偏移量,使用set方法指定偏移量;

2、修改保存在kafka的topic内的偏移量:

使用Kafka自带的kafka-consumer-groups.sh脚本设置消费者组(consumer group)的位移, 这是0.11.0.0版本提供的新功能且只适用于新版本consumer, 在新版本之前,如果要为已有的consumer group调整位移必须要手动编写Java程序调用KafkaConsumer#seek方法。

0.11.0.0版本丰富了kafka-consumer-groups脚本的功能,用户可以直接使用该脚本很方便地为已有的consumer group重新设置位移,但前提必须是consumer group必须是inactive的,即不能是处于正在工作中的状态。

确定topic作用域(支持3种作用域指定方式)

--all-topics:为consumer group下所有topic的所有分区调整位移--topic t1 --topic t2:为指定的若干个topic的所有分区调整位移--topic t1:0,1,2:为指定的topic分区调整位移

② 确

定位移重设策略(当前支持8种设置规则):

--to-earliest:把位移调整到分区当前最小位移--to-latest:把位移调整到分区当前最新位移--to-current:把位移调整到分区当前位移--to-offset :把位移调整到指定位移处--shift-by N:把位移调整到当前位移 + N处,注意N可以是负数,表示向前移动--to-datetime :把位移调整到大于给定时间的最早位移处,datetime格式是yyyy-MM-ddTHH:mm:ss.xxx,比如2017-08-04T00:00:00.000--by-duration :把位移调整到距离当前时间指定间隔的位移处,duration格式是PnDTnHnMnS,比如PT0H5M0S--from-file :从CSV文件中读取调整策略

③ 确定执行策略(当前支持3种):

无参:只是打印出位移调整方案,不具体执行--execute:执行真正的位移调整--export:把位移调整方案按照CSV格式打印,方便用户成csv文件,供后续直接使用

上述使用方式中,一般通过

s

hift-b

y N直接调整的

使用场景最多,使用如下:

java kafka设置偏移量_kafka实战宝典:手动修改消费偏移量的两种方式相关推荐

  1. springboot Java实现多文件的zip压缩操作 + 通过浏览器下载文件的两种方式

    注只适配utf-8的场景,待完善! 压缩为zip文件 通过java程序输出文件 /*** 功能:压缩多个文件成一个zip文件* @param srcfile:源文件列表* @param zipfile ...

  2. java applet怎么运行_Java如何运行Applet?运行Applet的两种方式

    详细内容 applet是一个小型的动态Java程序,那么如何运行Applet?本篇文章就给大家介绍Applet,让大家了解Applet是什么,运行Applet的方法,希望对你们有所帮助. Java a ...

  3. java匿名启动线程_使用匿名内部类:来创建线程的两种方式

    [Java]基础31:创建线程的两种方式 谢谢你的观看. 今天是我自学Java的第31天. 你的观看便是对我最大的鼓励. 话不多说,开始今天的学习: 线程的创建有两种方式,昨天学习过其中的一种: 创建 ...

  4. java 像素矩阵_Java图片读取之BufferedImage得到像素矩阵的两种方式

    最近在尝试着采用Java在图像处理领域实践一下常用的机器学习算法.首先涉及到的是如何将一副图片读取到一个像素矩阵中(Java中就是一维或二维数组中).在实践过程中,通过测试代码,我发现基于Buffer ...

  5. 分布式文档系统-document id的手动指定与自动生成两种方式解析(来自学习笔记:龙果学院ES课程)

    1.手动指定document id (1)根据应用情况来说,是否满足手动指定document id的前提: 一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据 ...

  6. 15.分布式文档系统-document id的手动指定与自动生成两种方式解析

    课程大纲 1.手动指定document id 2.自动生成document id ----------------------------------------------------------- ...

  7. java reds 集群_java项目中配置redis-cluster集群的两种方式

    本文分两部分: (1)jedisCluster (2)Spring-Data-Redis集群配置和RedisTemplate用法 我这里是在本机上搭建的3主3从6个redis实例. 一,jedisCl ...

  8. 设置Word文档密码的两种方式

    重要的word文档,不想随便被别人打开来看怎么办?那就给它设置一个打开密码吧. Word的设置密码有两种方式: 第一种,打开Word文档后,依次点击上面工具栏的[文件]-[信息],再点击右侧[保护文档 ...

  9. java get和post请求参数设置,Get和Post两种方式向指定地址提交表单

    做Java做了很多年,却总是把一些东西遗忘,过后再着急的找寻.最近,需要通过Java代码模拟一个表单提交,却怎么也想不起来如何封装数据了. 本篇主要描述Java网络参数传递,主要分为get和post两 ...

最新文章

  1. multipart request_Request和Response
  2. Mqtt ----心跳机制
  3. ffmpeg编译 c++ 常量中有换行符
  4. 元宇宙iwemeta:2021年企业领袖榜公布,曹德旺为终身成就奖
  5. php数组获取差集,php数组求差集问题
  6. 为什么自己编写的页面总是在那里抖动_为什么小红书的简介添加不上 个性签名的修改方法...
  7. 升级Windows10后,远程登录失败,问题:您的凭据不工作(RDP do not work )
  8. 爬虫库之BeautifulSoup学习(三)
  9. Openlayer:学习笔记之控件
  10. 银江股份:全面布局持续并购打造智慧城市生态圈
  11. Raspberry PI 上手记
  12. 深度学习入门:手写体识别
  13. Flurry analytics SDK集成步骤及功能简介
  14. 调用微信公众号现金红包接口给用户发送红包
  15. dns劫持解决方法有哪些、dns劫持什么意思
  16. 社会生活中的十二条著名法则
  17. css首行缩进字符间距行高_黑暗代码风格的学院:换行,间距和缩进
  18. spark web ui中的skipped的含义
  19. app运营业绩统计管理框架模板
  20. rj45 千兆接口定义_rj45接口定义,大神教你秒懂rj45的接线方法【详细方法】

热门文章

  1. 【周末送新书】基于BERT模型的自然语言处理实战
  2. Weakly Supervised Semantic Segmentation with Boundary Exploration
  3. 语音识别第4讲:语音特征参数MFCC
  4. 2022年茶艺师(初级)考试模拟100题及答案
  5. Codeforces Round #614 (Div. 2) E. Xenon's Attack on the Gangs(DP记忆化搜索+思维)
  6. Linux中su与su - 的区别
  7. 360 浏览器页面兼容 IE7
  8. 应用软件安全编程资源使用安全
  9. 十进制12345在32位计算机中的十六进制表示方法
  10. win7虚拟机VCMI无法自动安装驱动程序