栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

kafka生产数据时的应答机制(ACK)

kafka生产数据时的应答机制(ACK)

ACK = 0:生产者发送完数据,不用考虑数据是否已到达kafka服务器,然后紧接着就发下一条数据,这样,效率会非常高。但是存在一个问题:数据的丢失可能性比较大。

ACK = 1:生产者发送数据,是需要等待leader的应答,如果应答完成,才能发送下一条message,是不关心follower是否pull完成,是否接收成功的。这样,虽说性能会慢些,但是数据会比较安全。可但是,在leader保存完数据后,突然leader所在的broker down掉了,此时的follower还没来得及从leader那儿pull数据,那么这个数据就会丢失。

ACK = -1:可以理解为最耗时的选项。当生产者发送数据后,需要等待所有的副本的应答,包括leader+follower,这种方式是最安全的,但同时也是性能最差的。

总结简化这三种情况:
  1. ACK = 0:只发一次数据,不管leader是否接收成功
  2. ACK = 1:只要等待leader接收完成即可(如果没有配置ack机制,则默认为1)
  3. ACK = -1:需要等待leader将消息同步给所有的follower即可

(备注:当follower从leader那里pull数据后,会写入到本地的分段日志log中,同时也会返回给leader一个ACK标志)

有帮到你的点赞、收藏一下吧

                                                                        需要更多教程,微信扫码即可

                                                                                 

                                                                                         

                                                        别忘了扫码领资料哦【高清Java学习路线图】

                                                                     和【全套学习视频及配套资料】
 
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/629832.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号