我想知道在云中为多个微服务/应用程序使用 Redis(在我的例子中是 Google Memorystore,标准层)的最佳实践是什么。根据我迄今为止的研究,可以使用以下选项:
- 使用单个集群和数据库,为所有微服务水平扩展。这似乎最具成本效益,因为我将使用整个系统所需的确切节点数量。数据隔离在这里受到影响,但我可以减少影响,例如通过在键前面加上微服务名称。
- 为每个微服务使用单独的集群和数据库。在这种情况下,隔离更好,所需集群的扩展只会影响单个微服务,但这似乎不划算,因为许多节点可能负载不足(例如微服务 M1 使用节点的 50% 容量,微服务 M2利用节点的 40% 容量,因此在情况 1 中,两个微服务将仅由单个节点提供服务)。
- 理论上,我可以使用多个数据库来隔离单个集群中的数据,但据我所知,Redis 不支持这一点(并且在单个节点上使用多个数据库会导致性能问题)。
我倾向于选项 1.,但也许我错过了什么?