流处理引擎通常为应用程序提供了三种数据处理语义:最多一次、至少一次和精确一次。 (一致性由弱到强):At most noce < At least once < Exactly once < End to End Exactly once 根据现实举例.
时间: 2024-06-08 09:11:52 浏览: 84
最多一次语义通常用于数据丢失风险比较小的场景,例如某个应用程序需要读取某个消息队列中的数据,如果在读取过程中数据丢失,那么这些数据也不会对后续的处理造成太大的影响。
至少一次语义通常用于数据丢失风险比较大的场景,例如某个应用程序需要将数据写入到数据库中,如果数据写入失败,那么这些数据可能会丢失,因此需要确保至少将数据写入一次。
精确一次语义通常用于需要避免数据重复处理的场景,例如某个应用程序需要将数据写入到某个消息队列中,如果将数据写入两次,那么可能会导致后续的处理出现重复数据的情况。
最终一致性(End to End Exactly once)通常用于需要确保数据不重不漏地被处理的场景,例如某个应用程序需要将数据从一个消息队列中读取出来,经过多个处理步骤后写入到另外一个消息队列中,如果不使用最终一致性,那么可能会导致数据重复或者丢失的情况。
阅读全文