带有Sparking Streaming的订单保证

问题描述 投票:1回答:1

我试图从kafka获得一些我希望在另一个系统中向下游传播的更改事件。然而,Change命令很重要。因此,我想知道在中间进行一些Spark转换的合适方法是什么。我唯一看到的是放松并行性并在一个分区上创建DStream。也许有一种方法可以并行执行操作并将所有内容放回一个分区,然后将其发送到外部系统或返回Kafka,然后使用Kafka Sink。

我相信有些人已经这样做了,如果你能分享你的经验和方法,那就太好了。谢谢。

apache-spark streaming apache-kafka spark-streaming
1个回答
0
投票

在分布式环境中,在最多层具有某种形式的兑现/缓冲,从同一台机器生成的消息可以以不同的顺序到达后端。秩序的定义也是主观的。实施订单的全局定义对于整个数据将是限制性的(可能不正确)。

因此,Kafka的目的是按照put的顺序保持数据的顺序,但分区是一个问题!分区定义了每个主题的并行度。

通常,保留kafka的抽象级别,它不应该打扰订单。它应该针对最大吞吐量进行优化,分区将会派上用场!考虑只订购支持流媒体的副作用!!!

现在,逻辑确保将数据按顺序放入kafka,这在您的应用程序中更有意义(火花作业)。

© www.soinside.com 2019 - 2024. All rights reserved.