搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
交流区
›
技术交流
›
Kafka
›
疑问解答
›
关于kafka消费端多线程丢数据的问题
0
2
0
分享
关于kafka消费端多线程丢数据的问题
ighack
2019-6-28 09:09:23
发表于
疑问解答
[显示全部楼层]
只看大图
阅读模式
关闭右栏
2
6638
本帖最后由 ighack 于 2019-6-28 09:23 编辑
我现在做一个假设消费程序开了A B两个线程。每一个线程都是一个完整的Consumer实例。每个实例一次取10条消息
A 取了1-10
B 取了11-20
现在B线程处理完成,提交。但A线程还没处理完成。线程挂了。那么下次取数据就时候就变成了从21开始取。前面的1-10数据就丢了
如果我只开启一个Consumer实例。多线程处理消息也有这个问题
如我只开了一个A Consumer实例。一次取了20个消息
其中一个线程处理的是18。这个线程最先处理完成并提交。其他的线程还没处理完。程序挂了。下次在取数据就时候就变成了19
那么前面的数据也丢了
我认为只要是多线程序就是一个乱序执行。最面的数据可能先提交。前面的数据没处理完成。程序挂掉就会有这个问题。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
已有(2)人评论
电梯直达
正序浏览
s060403072
发表于 2019-6-28 21:38:45
建议楼主先了解下kafka消费机制,如下图
不会出现一个线程消费同一个分区,所以不会出现楼主的情况。
A 取了1-10
B 取了11-20
对于挂掉会丢失数据,kafka有exactly-once机制,这个不用担心。
详细可参考下面内容:
kafka0.11Exactly Once语义与事务机制原理介绍
http://www.aboutyun.com/forum.php?mod=viewthread&tid=24367
回复
使用道具
举报
显身卡
ighack
发表于 2019-7-1 09:54:35
多个Consumer我昨天也想到了
每一次提交是性对一个分区的
但多线程做消费处理还是会出现数据丢失的问题
回复
使用道具
举报
显身卡
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
ighack
中级会员
关注
10
主题
71
帖子
7
粉丝
TA的主题
spark排序以后写入单个文件
2020-12-9
flink 报AppendStreamTableSink requires that Table has only insert changes
2020-5-25
关于flink1.10中kafka写入的问题
2020-5-15
flink连kafka的json格式怎么执行SQL
2020-5-15
hadoop设为高可用,datanode节点看不全
2020-5-13
24小时热文
求职,请给HR一点活路
找工作很难,为什么我一天三个机会
股票魔法师.Ⅲ,趋势交易圆桌访谈
大数据面试题
我如何从股市赚了200万(珍藏版)
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈