消息队列之kafka(消费语义)-创新互联

1. 消费语义的介绍

   at last once:至少消费一次(对一条消息有可能多次消费,有可能会造成重复消费数据)
     原因:Proudcer产生数据的时候,已经写入在broker中,但是由于broker的网络异常,没有返回ACK,这时Producer,认为数据没有写入成功,此时producer会再次写入,相当于一条数据,被写入了多次。
   at most once:最多消费一次,对于消息,有可能消费一次,有可能一次也消费不了
    原因:producer在产生数据的时候,有可能写数据的时候不成功,此时broker就跳过这个消息,那么这条数据就会丢失,导致consumer无法消费。
   exactly once:有且仅有一次。这种情况是我们所需要的,也就是精准消费一次。

专业成都网站建设公司,做排名好的好网站,排在同行前面,为您带来客户和效益!成都创新互联为您提供成都网站建设,五站合一网站设计制作,服务好的网站设计公司,成都网站制作、网站建设负责任的成都网站制作公司!

2.kafka中消费语义的场景

   at last once:可以先读取数据,处理数据,最后记录offset,当然如果在记录offset之前就crash,新的consumer会重复的来消费这条数据,导致了”最少一次“
   at most once:可以先读取数据,然后记录offset,最后在处理数据,这个方式,就有可能在offset后,还没有及时的处理数据,就crash了,导致了新的consumer继续从这个offset处理,那么刚刚还没来得及处理的数据,就永远不会被处理,导致了”最多消费一次“
   exactly once:可以通过将提交分成两个阶段来解决:保存了offset后提交一次,消息处理成功后,再提交一次。

3.kafka中如何实现精准写入数据?

A:Producer 端写入数据的时候保证幂等性操作:
幂等性:对于同一个数据无论操作多少次都只写入一条数据,如果重复写入,则执行不成功
B:broker写入数据的时候,保证原子性操作, 要么写入成功,要么写入失败。(不成功不断进行重试)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:消息队列之kafka(消费语义)-创新互联
浏览路径:http://ybzwz.com/article/djccdp.html