【发布时间】:2021-07-10 16:56:04
【问题描述】:
假设我有一个微服务 A,它有 3 个实例。同样,对于微服务 B,B 服务也有 5 个实例。
我将为微服务 A 和 B 提供单独的数据库,这很好。但是A或B的每个微服务实例是否需要单独的db实例?
我的意思是说对于微服务 A 的 3 个实例,我需要有 3 个单独的 db 实例吗?还是 A 的所有实例都指向一个数据库实例?哪种方法更好?
【问题讨论】:
假设我有一个微服务 A,它有 3 个实例。同样,对于微服务 B,B 服务也有 5 个实例。
我将为微服务 A 和 B 提供单独的数据库,这很好。但是A或B的每个微服务实例是否需要单独的db实例?
我的意思是说对于微服务 A 的 3 个实例,我需要有 3 个单独的 db 实例吗?还是 A 的所有实例都指向一个数据库实例?哪种方法更好?
【问题讨论】:
这个问题很广泛,没有更好或最差的方法,这完全取决于您的用例和用户负载。
根据您的问题,我了解到您需要生成单个微服务的单独实例,因此理想情况下,服务 A 的所有实例都应该可以访问相同的数据。您可以创建多主架构,在其中您可以通过设置多主数据库将您的服务连接到每个副本。这篇文章给你一个概述scale-out-blog。然而,这样做会产生很多影响,您需要仔细设计您的服务来实现这一点。
您还可以创建指向同一数据库的单独实例,您无需关心复制和其他复杂问题。
【讨论】: