【问题标题】:Store tenant preferences in a multi-tenant app in DynmoDB or SSM在 DynmoDB 或 SSM 的多租户应用程序中存储租户首选项
【发布时间】:2021-12-08 09:24:05
【问题描述】:

我有一个多租户应用程序,后端由微服务组成。租户管理员将在 UI 上有一个首选项页面,该页面可以存储租户(即租户的所有用户)的系统首选项。

我正在考虑存储它的最佳位置是什么?

SSM 还是 Dynamo?对于这个用例有什么权衡吗?

我们有一个租户微服务,或者我们可以创建一个系统偏好微服务来存储偏好。我试图避免所有跨服务通信,因此每个租户的用户将在登录时获得所有首选项并将它们发送回标题中。我们应该继续将首选项存储在租户数据库中还是系统首选项微服务是要走的路?

【问题讨论】:

  • 进展如何?还不清楚你能做什么?
  • 是的,到目前为止,我对@Marcin 的任何解决方案都不太满意。我已经缩小了我想将它保留在 DDB 中的范围(很可能),但它要么导致我从另一个调用微服务或引入共享数据库,我真的不喜欢任何一种方式。这不是我希望拥有整个微服务或从另一个微服务进行同步调用的大量信息。
  • 我可能愿意做的可能是创建一个没有自己的数据库的微服务,但只将事件推送到 5-6 个不同的服务,这些服务将各自的偏好存储在他们的数据库中。当需要获取它们时,我可以从每个微服务进行 5-8 次调用,你觉得呢? @Marcin
  • 如果你的微服务失败了,那么如果没有外部数据库,所有用户数据都会丢失?
  • @SKhurana 同意了。正如你所提到的,我正在考虑创建另一个微服务,但除了 Marcin 所指出的之外,该微服务的延迟延迟是另一个问题。也许 DynamoDB 是最快、最便宜的方式

标签: amazon-web-services amazon-dynamodb microservices aws-ssm


【解决方案1】:

配置变量通常存储在 SSM Parameter Store 中。其中之一是免费。来自docs

Parameter Store 是 AWS Systems Manager 的一项功能,可为配置数据管理和机密管理提供安全的分层存储。

SSM Parameter Store 还与许多其他服务原生集成。例如,您可以无缝地使用它们来pass secrets to ecs containers

【讨论】:

  • 这些偏好主要与租户的用户如何看待应用程序有关,即测量单位是什么,每次测量的小数位数。你还会说这属于 SSM 而不是属于 Dynamo 吗? (特别是因为 Dynamo 响应更快)。另外,如果系统首选项应该是一个单独的微服务或租户微服务应该扩展以存储这些,有什么意见吗?
  • @SKhurana SSM 肯定会比 DDb 慢。所以这取决于你多久更新和查询它们?如果针对每个客户端请求,那么 DDb 会更快。我对“单独的微服务”没有具体的看法。我想如果偏好逻辑将在所有租户之间共享,那么将它作为一个单独的服务可能会更好。
  • @SKhurana 您可以拥有多少个 SSM 参数也有限制。使用 DDb 没有限制。
猜你喜欢
  • 2015-03-06
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2011-05-05
  • 2015-08-17
  • 1970-01-01
相关资源
最近更新 更多