Kafka_kafka当中的数据不丢失机制

1246-谭同学

发表文章数:140

热门标签

首页 » 大数据 » 正文


1.生产者生产数据不丢失

1、生产者数据不丢失过程图:
有多少个分区,就启动多少个线程来进行同步数据
Kafka_kafka当中的数据不丢失机制

2、发送数据方式
采用同步或者异步的方式
同步: 发送一批数据给kafka后,等待kafka返回结果

1、生产者等待10s,如果broker没有给出ack相应,就认为失败。
2、生产者重试3次,如果还没有响应,就报错

异步: 发送一批数据给kafka,只是提供一个回调函数。

1、先将数据保存在生产者端的buffer中。buffer大小是2万条 
2、满足数据阈值或者数量阈值其中的一个条件就可以发送数据。
3、发送一批数据的大小是500条

如果broker迟迟不给ack,而buffer又满了,开发者可以设置是否直接清空buffer中的数据。

3、ack机制(确认机制)
生产者数据发送出去,需要服务端返回一个确认码,即ack响应码;
ack的响应有三个状态值:

0:producer发送一次就不再发送了,不管是否发送成功。
1:producer只要收到一个分区副本(leader副本)成功写入的通知就认为推送消息成功了
-1:producer只有收到分区内所有副本(包括备份副本)的成功写入的通知才认为推送消息成功了。

注意: 响应码默认为1

说明:如果broker端一直不给ack状态,producer永远不知道是否成功;producer可以设置一个超时时间10s,超过时间认为失败。

2.kafka的broker中数据不丢失

在broker中,保证数据不丢失主要是通过副本因子(冗余),防止数据丢失

3.消费者消费数据不丢失

在消费者消费数据的时候,只要每个消费者记录好offset值即可,就能保证数据不丢失。

标签:

未经允许不得转载:作者:1246-谭同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Kafka_kafka当中的数据不丢失机制》 发布于2021-02-22

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录