Apache Flink-为多租户应用程序多次运行同一作业

时间:2020-07-03 09:50:53

标签: apache-spark spark-streaming apache-flink apache-storm flink-streaming

我们有一个多租户应用程序,其中我们为每个租户维护消息队列。我们已经实现了Flink作业来处理来自消息队列的流数据。基本上,每个消息队列都是Flink作业中的源。这是推荐的方法吗?还是可以根据租户数量多次运行同一工作(一个来源)?我们希望每个租户将产生不同数量的数据。多作业方法是否具有可扩展性优势?

方法 1:具有多个来源的单个作业 2.运行相同作业的副本,每个副本都有一个来源

我认为这些方法适用于Storm,Spark或任何其他流媒体平台。

谢谢

1 个答案:

答案 0 :(得分:1)

基于性能的方法1)具有最大的潜力。资源可更好地用于不同来源。由于来源不同,因此查询本身的优化潜力有限。

但是,如果我们真的要讨论多租户,我会采用第二种方法。您可以为应用程序分配更多的细粒度权限(例如,可以使用哪个Kafka主题,向哪个S3存储桶写入)。由于大多数应用程序开发人员倾向于开发符合GDPR的工作流程(即使当前国家/地区可能不会受到影响),所以我会走这条路,以保持安全。这种方法还具有以下优点:如果添加/删除某个租户,则无需为每个人重新启动作业。