0

我想知道在云中为多个微服务/应用程序使用 Redis(在我的例子中是 Google Memorystore,标准层)的最佳实践是什么。根据我迄今为止的研究,可以使用以下选项:

  1. 使用单个集群和数据库,为所有微服务水平扩展。这似乎最具成本效益,因为我将使用整个系统所需的确切节点数量。数据隔离在这里受到影响,但我可以减少影响,例如通过在键前面加上微服务名称。
  2. 为每个微服务使用单独的集群和数据库。在这种情况下,隔离更好,所需集群的扩展只会影响单个微服务,但这似乎不划算,因为许多节点可能负载不足(例如微服务 M1 使用节点的 50% 容量,微服务 M2利用节点的 40% 容量,因此在情况 1 中,两个微服务将仅由单个节点提供服务)。
  3. 理论上,我可以使用多个数据库来隔离单个集群中的数据,但据我所知,Redis 不支持这一点(并且在单个节点上使用多个数据库会导致性能问题)。

我倾向于选项 1.,但也许我错过了什么?

4

1 回答 1

1

不确定最佳实践,我会告诉你我的经验。一般来说,我会选择选项#2。

每个微服务都有自己的 redis 实例或集群。Redis 集群遵循自己的微服务生命周期。例如,当您重新部署或重新启动服务时,它们可能会重新生成。

您可能会付出更多,但您会获得弹性和维护麻烦。

于 2020-05-27T10:22:04.373 回答