https://blog.csdn.net/dingding_ting/article/details/84862776

https://blog.csdn.net/xianpanjia4616/article/details/84347087

kafka-0.10.1.X版本之前: auto.offset.reset 的值为smallest,和,largest.(offest保存在zk中)

kafka-0.10.1.X版本之后: auto.offset.reset 的值更改为:earliest,latest,和none (offest保存在kafka的一个特殊的topic名为:__consumer_offsets里面)

auto.offset.reset: 可理解为kafka consumer读取数据的策略,本地用的kafka版本为0.10,因此该参数可填earliest|latest|none。

earliest: 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费
latest: 当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据
none: topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常

测试前提: 我们主要做的是Flink的Streaming sql,在创建kafka source的时候封装了该参数,查看是否消费数据,我们借助了jmeter和Flink web ui上的metrics等工具。

测试过程:
earliest模式: kafka source的名称为a1
1.在a1中,topic为test1,groupId为0001,0001从未被消费过,数据(24条)提前发送,再启动sql1(select * from a1 ),会从头开始消费,显示24条数据

2.停掉1中所提到的sql1,发送不同的6条数据到kafka中,不更换a1的groupId,再启动sql1(select * from a1 ),会接着上次消费的位置开始往后消费,显示6条数据

latest模式:kafka source的名称为a2
1.在a2中,topic为b,groupId为0002,0002未被消费,数据提前发送,再启动sql2(select * from a2),在jmeter上未看到结果,在flink中查看相关metrics,无数据读入;在不杀掉sql2的前提下,发送一批(8条)数据,只消费后发送的8条数据。

2.停掉1中的sql2,不更换a2中的groupId,发送7条数据到b中,启动sql2,只显示后发送的7条数据

none模式: kafka source的名称为a3
1.在a3中,topic为c,设置groupId为0001(未被消费过),数据提前发送,再启动sql3(select * from a3),sql执行失败,在日志中报错:

2.在a3中,topic为c,设置groupId为0002(被消费过),启动sql3(select * from a3),发送8条数据到c中,jmeter中显示8条数据

最新文章

  1. .NET C#-- 利用BeginInvoke与EndInvoke完成异步委托方法并获取方法执行返回值示例
  2. sysbench 安装遇到的问题
  3. RF《Quick Start Guide》操作总结
  4. (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
  5. struts自定义拦截器
  6. Windows 服务与 Web 服务
  7. java对象的内存分配
  8. ORACLE 本地冷迁移
  9. java利用poi生成/读取excel表格
  10. MySQL二进制日志binlog简单使用
  11. Deepin MongoDB安装&使用总结
  12. xmind-HTTP协议
  13. Java内存空间的分配及回收
  14. javascript实现限定高度下文字随不同设备自适应改变字体大小至字数完全展示
  15. JAVA记录-JSP页面获取服务器路径方式
  16. C++赋值兼容原则
  17. spring boot springmvc视图
  18. 4.Mysql中的运算符
  19. java反射bean to bean
  20. r语言笔记 jn

热门文章

  1. canvas绘制气泡
  2. 二十一、proxyDesign 代理模式
  3. idea导入eclipse项目的配置
  4. CentOS7双网卡绑定配置
  5. FortiGate防火墙HA下联堆叠交换机
  6. Java中两个线程是否可以同时访问同一个对象的两个不同的synchronized方法?
  7. python 数据可视化 -- 读取数据
  8. Python踩坑之 sys.argv[-1]代表什么
  9. AJAX技术主要包含的四个组件
  10. 渗透测试的理论部分2——OSSTMM的详细描述