kafka的延迟操作-pull操作详解

kafka的延迟操作和正常我们服务端处理事件的方式不一样,我们服务器正常情况下处理数据都是尽可能快的返回当前的结果,但是kafka的延迟操作不一样:
比如生产者发送ack=-1的数据到服务端leader分区所在的主broker上,此时主broker在把消息写入本地文件后要进行等待,此时会创建一个延迟操作,等到其他副本broker同步了该消息并写入对应的日志文件后才会提前触发这个延迟操作的执行,否则需要等待超时时间到了之后再执行.
由此延伸出kafka消息拉消费模式的理解:其实拉的时效性和主动推送是差不多的,原因在于消费端在pull拉取消息的时候,如果当时还没有消息,那么kafka服务端会创建一个拉取的延迟操作,等到有消息写入broker端的时候消息数量满足时,kafka就会把数据返回给消费者,所以这里其实几乎和推送消息是一样的时效性.所以如果消费端是专门用一条线程来pull消息的话,实时性和服务端的主动推送几乎是一样的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值