许多文章告诉我Kafka将数据写入PageCache首先,它提高了写性能。
然而,我有一个疑问,当ack=-1
时,当copy=2
时,数据确实已经存在于PageCache
如果Kafka此时响应acks
,并且立即,两个节点同时经历停电或系统崩溃,此时,两个节点的数据都还没有持久存储在磁盘上。
在这种极端情况下,数据丢失仍然可能发生?
在上述情况下可能发生数据丢失。
相关阅读:
- 这另一个答案 Confluent博客文章:由于日志数据不会同步从页面缓存刷新到磁盘,Kafka依赖于多个代理节点的复制,以提供持久性。默认情况下,代理将不会确认产品请求,直到它被复制到其他代理。">