- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当向所有 ISR 副本写入消息失败,但消息已经持久化在领导者上时,会发生什么?
即使请求失败,数据是否仍然可供消费者使用?
消费者是否能够读取“未提交”的数据?
最佳答案
在主题配置 min.insync.replicas
之前,KafkaConsumer 看不到该消息实现了。
Kafka 期望失败的副本代理重新启动并运行,以便完成复制。
请注意,此场景仅在您的 KafkaProducer 配置 acks
时才相关。设置为 all
.当您将其设置为 0 或 1 时,一旦数据到达分区领导者,Consumer 将能够使用该消息。
通常,客户端(此处为 KafkaProducer)仅与分区领导者通信,并根据其模式(例如同步、异步或即发即弃)及其 acks 配置等待或不等待回复。数据本身的复制独立于生产者,并由分区领导代理上的(单线程)处理。领导者只会通知复制成功或失败,领导者/副本继续确保满足主题配置 replication.factor
的复制集。 .
如果消息仅被生产者确认而不是被副本确认,则生产者可能仍会尝试重新发送消息,具体取决于其 acks 设置以及异常是否可重试。在这种情况下,您最终会得到重复的值。您可以通过启用幂等性来避免这种情况。
关于apache-kafka - 当 ISR 关闭但消息写入领导者时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65205934/
我试图在未排序的堆栈中找到多数或领导者,但我的 tos(堆栈顶部变量)遇到了问题。下面是我的代码,其中包含主要内容。数组或堆栈的大部分是在数组中出现次数超过一半的元素 (arrSize/2)。 pub
我刚刚阅读了一篇关于 Leader/Follower Pattern 的论文。如果我理解正确,我将我的工作人员放在一个队列中,第一个工作人员接受传入请求并从队列中分离。 使用正常的工作队列(例如 ra
我是一名优秀的程序员,十分优秀!