当前位置: 首页 > 面试题库 >

请谈一谈 Kafka 数据一致性原理?

邵锐
2023-03-14
本文向大家介绍请谈一谈 Kafka 数据一致性原理?相关面试题,主要包含被问及请谈一谈 Kafka 数据一致性原理?时的应答技巧和注意事项,需要的朋友参考一下

一致性就是说不论是老的 Leader 还是新选举的 Leader,Consumer 都能读到一样的数据。

32 道常见的 Kafka 面试题你都会吗?附答案 如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号:iteblog_hadoop

假设分区的副本为3,其中副本0是 Leader,副本1和副本2是 follower,并且在 ISR 列表里面。虽然副本0已经写入了 Message4,但是 Consumer 只能读取到 Message2。因为所有的 ISR 都同步了 Message2,只有 High Water Mark 以上的消息才支持 Consumer 读取,而 High Water Mark 取决于 ISR 列表里面偏移量最小的分区,对应于上图的副本2,这个很类似于木桶原理。

这样做的原因是还没有被足够多副本复制的消息被认为是“不安全”的,如果 Leader 发生崩溃,另一个副本成为新 Leader,那么这些消息很可能丢失了。如果我们允许消费者读取这些消息,可能就会破坏一致性。试想,一个消费者从当前 Leader(副本0) 读取并处理了 Message4,这个时候 Leader 挂掉了,选举了副本1为新的 Leader,这时候另一个消费者再去从新的 Leader 读取消息,发现这个消息其实并不存在,这就导致了数据不一致性问题。

当然,引入了 High Water Mark 机制,会导致 Broker 间的消息复制因为某些原因变慢,那么消息到达消费者的时间也会随之变长(因为我们会先等待消息复制完毕)。延迟时间可以通过参数 replica.lag.time.max.ms 参数配置,它指定了副本在复制消息时可被允许的最大延迟时间。

 类似资料:
  • 本文向大家介绍谈一谈 Kafka 的再均衡相关面试题,主要包含被问及谈一谈 Kafka 的再均衡时的应答技巧和注意事项,需要的朋友参考一下 在Kafka中,当有新消费者加入或者订阅的topic数发生变化时,会触发Rebalance(再均衡:在同一个消费者组当中,分区的所有权从一个消费者转移到另外一个消费者)机制,Rebalance顾名思义就是重新均衡消费者消费。Rebalance的过程如下: 第一

  • 本文向大家介绍请谈一谈,系统如何提高并发性?相关面试题,主要包含被问及请谈一谈,系统如何提高并发性?时的应答技巧和注意事项,需要的朋友参考一下 考察:操作系统综合性 1、提高CPU并发计算能力 (1)多进程&多线程 (2)减少进程切换,使用线程,考虑进程绑定CPU (3)减少使用不必要的锁,考虑无锁编程 (4)考虑进程优先级 (5)关注系统负载 2、改进I/O模型 (1)DMA技术 (2)异步I/

  • 本文向大家介绍请谈一谈,get和post的区别?相关面试题,主要包含被问及请谈一谈,get和post的区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:HTTP请求   (1)在客户端, Get 方式在通过 URL 提交数据,数据 在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。 (2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。 (3)安

  • 本文向大家介绍谈谈对Java多态性的一点理解,包括了谈谈对Java多态性的一点理解的使用技巧和注意事项,需要的朋友参考一下 面向对象编程有三大特性:封装、继承、多态。       封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。       继承是为了重用父类代码。两个类若存在IS-A的关系就可以

  • 本文向大家介绍谈一谈,如何得到一个数据流中的中位数?相关面试题,主要包含被问及谈一谈,如何得到一个数据流中的中位数?时的应答技巧和注意事项,需要的朋友参考一下 考察点:排序 数据是从一个数据流中读出来的,数据的数目随着时间的变化而增加。如果用一个数据容器来保存从流中读出来的数据,当有新的数据流中读出来时,这些数据就插入到数据容器中。 数组是最简单的容器。如果数组没有排序,可以用 Partition

  • 本文向大家介绍请谈一谈你有什么兴趣爱好呢?相关面试题,主要包含被问及请谈一谈你有什么兴趣爱好呢?时的应答技巧和注意事项,需要的朋友参考一下 辩论,因为参加辩论比赛能够锻炼我的逻辑思维,提升我的应对能力,另外也能更精准的找到别人话语中的漏洞,因为辩论需要专注去听和思考,那么也能让我在做一件事情的时候更加专注。