Apache kafka 使用Kafka作为EventStore时恢复Flink中的状态一致性 问题
我将微服务实现为事件源聚合,而事件源聚合又实现为Flink FlatMapFunction。在基本设置中,聚合从两个kafka主题读取事件和命令。然后,它将新事件写入第一个主题,并在第三个主题中处理结果。因此,卡夫卡充当事件存储。希望这张图有助于:Apache kafka 使用Kafka作为EventStore时恢复Flink中的状态一致性 问题,apache-kafka,aggregate,microservices,apache-flink,event-sourcing,Apache Kafka,Aggregate,Microservices,Apache Flink,Event Sourcing,我将微服务实现为事件源聚合,而事件源聚合又实现为Flink FlatMapFunction。在基本设置中,聚合从两个kafka主题读取事件和命令。然后,它将新事件写入第一个主题,并在第三个主题中处理结果。因此,卡夫卡充当事件存储。希望这张图有助于: RPC Request RPC Result | | ~~~~> Comman
RPC Request RPC Result
| |
~~~~> Commands-| |---> Results ~~~~~~|
|-->Aggregate--|
~> Input evs. -| |---> output evs. ~~~
| |
~~~~~<~~~~~~~~~~~<~~~feedbak loop~~~~~<~~~~~~~~<~~~
创建新的Conmuter运算符类型。这就像一个来源。它由多个表示事件和命令主题的源组成。它开始于“恢复”状态。在此状态下,它将从事件主题读取最新的事件主题。同时,对于命令,它存储或删除它们。一旦更新,它将考虑恢复并“打开”命令的方式。它可以作为一个源和一个操作符单独实现 FlinkKafkaProducerXX不足以做到这一点,但它将是实现它的基础
interface WatermarkNotifiable {
void started(String watermarkId);//KafkaSourceStartedWatermark watermark
void upToDate(String watermarkId);//KafkaSOurceUpToDateWatermark watermark
}