当前位置: 首页 > 知识库问答 >
问题:

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

澹台建华
2023-03-14

我们有一个多租户应用程序,我们在其中为每个租户维护消息队列。我们实现了一个Flink作业来处理消息队列中的流数据。基本上,每个消息队列都是Flink作业中的一个源。这是推荐的方法吗?还是可以根据租户的数量多次运行相同的作业(使用一个源)?我们预计每个租户将产生不同数量的数据。在多作业方法中会有任何可伸缩性优势吗?

谢谢你

共有1个答案

卜飞鸣
2023-03-14

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

然而,如果我们真的讨论多租户,我会采用第二种方法。您可以为应用程序分配更多的细粒度权限(例如,可以使用哪个Kafka主题,将其写入哪个S3 bucket)。由于大多数应用程序开发人员倾向于开发符合GDPR的工作流(即使当前的国家可能不受影响),为了安全起见,我选择了这条路线。这种方法还有一个优点,即如果添加/删除某个承租人,则不需要为每个人重新启动作业。

 类似资料:
  • 我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解

  • 我已经安装了keycloak-angular包,我使用它的方式如下:https://www.npmjs.com/package/keycloak-angular 问题是,在我的应用程序中,我希望有多租户。这意味着在应用程序加载期间不知道领域名。 在说明中,它说“KeycloakService应该在应用程序加载期间使用APP_INITIALIZER标记初始化”,问题是该领域是由用户给定的,在应用程序

  • 我正在使用Java、Spring、Struts2和Hibernate设计一个多租户SaaS Web应用程序。经过一些研究,我选择在共享数据库、共享模式、共享表的方法中实现多租户。并用tenantid标记每个db行。 我已经重写了我的应用程序,所以管理者和DAO将把tenantId作为一个参数,只为正确的数据库资源服务。 当获取信息时,这对所有视图来说都是完美的。也用于创建新的东西(使用登录的用户t

  • 我正在开发一个java应用程序,其中我使用java swing窗体和javafx FXML stage,我对javafx是新手,现在我在应用程序中调用具有控制器的javafx FXML stage,从swing窗体调用FXML stage,单击如下按钮----application.launch(myfxml.class); 下面的代码片段用于调用swing表单-- 我得到的异常是“应用程序启动必

  • 我正在学习多租户应用程序,以及如何使用PostgreSQL的模式来实现这一点。 在研究这个主题时,我发现了一篇文章,作者描述了在多租户应用程序中使用PostgreSQL模式时的糟糕体验。主要问题是迁移性能差和数据库资源使用率高。 似乎只有一个模式(在租户之间共享表)会比每个租户有一个单独的模式带来更好的性能。但我觉得很奇怪。我的想法正好相反,因为较小表上的索引往往比较大表上的索引轻。 为什么在许多

  • 我有多个Kafka主题(多租户),我运行同一个作业运行多次基于主题的数量,每个作业消耗来自一个主题的消息。我已将文件系统配置为状态后端。 假设有3个作业正在运行。这里的检查站是如何工作的?这3个作业是否都将检查点信息存储在同一路径中?如果任何作业失败,该作业如何知道从何处恢复检查点信息?我们过去常常在向flink集群提交作业时提供作业名称。这和它有什么关系吗?一般来说,Flink如何区分作业及其检