本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
PostgreSQL 池模型
池模型是通过配置单个 PostgreSQL 实例(Amazon RDS 或 Aurora)并使用行级安全性 (RLS)SELECT
查询返回表中的哪些行,或者哪些行受到INSERT
UPDATE
、和DELETE
命令的影响。池模型将所有租户数据集中在单个 PostgreSQL 架构中,因此成本效益明显提高,维护所需的运营开销也更少。由于该解决方案的集中化,监视该解决方案也要简单得多。但是,在池模型中监控租户特定的影响通常需要在应用程序中使用一些额外的工具。这是因为默认情况下 PostgreSQL 不知道哪个租户在消耗资源。由于不需要新的基础架构,因此简化了租户入职流程。这种敏捷性可以更轻松地完成快速、自动化的租户入职工作流程。
尽管池模式通常更具成本效益,更易于管理,但它确实有一些缺点。在泳池模型中,噪声邻居现象无法完全消除。但是,可以通过确保 PostgreSQL 实例上有适当的可用资源以及使用策略来减少 PostgreSQL 中的负载(例如将查询转移到只读副本或 Amazon)来缓解这种情况 ElastiCache。有效的监控在响应租户性能隔离问题方面也起着作用,因为应用程序工具可以记录和监控租户特定的活动。最后,一些 SaaS 客户可能认为 RLS 提供的逻辑分离不够,可能会要求采取额外的隔离措施。