我们想为SCDF实现一个多租户解决方案,为此每个租户可能具有唯一的任务定义等。理想情况下,我们只需要一个SCDF服务器(而不是为每个租户设置一个SCDF服务器),因为图为:
这是可能的还是实现租户之间的数据隔离以拥有单独的数据流服务器实例的唯一方法?
答案 0 :(得分:1)
您今天无法在这里尝试什么。您必须为每个租户提供SCDF。在Kubernetes或Cloud Foundry之类的云平台中,建议使用此方法,因为您可以分别通过“名称空间”和“组织/空间”隔离来访问控制租户。在此基础上,这些平台通过RBAC分配为租户中的每个用户提供了更可靠的隔离。
更多关于我们今天为什么这样做的背景。 SCDF和任务/作业存储库在某种意义上是耦合的,即仪表板和其他客户端工具与同一数据源进行交互,以提供一致的UX来集中监视和管理数据管道。借助最近对Tasks的多平台后端支持,您仍有望在当前设计中使用通用数据源。
总而言之,我们正在寻求改进,以允许用户拥有带有以标识符为前缀的模式的数据库[请参阅:spring-cloud/spring-cloud-dataflow#2048]。有了这些,就可以按标识符特定的任务/作业执行进行过滤,并同样将其作为单个 SCDF实例中的独立操作单元进行跟踪。
但是,它可能不适用于云部署。每个租户隔离边界(例如,Kubernetes中的“命名空间”)都需要有足够的资源(cpu /内存/磁盘)来处理任务/批处理应用程序的“多个”租户部署。如果不自动扩展资源容量,则部署将会失败。
也许您可以帮助更详细地描述您的需求,所以我们可以联系一下为什么这仍然有用。还请分享您如何在底层部署平台中设计资源分配-随时在#2048中发表评论。