是否有必要为同一微服务的每个微服务实例拥有单独的 db 实例?

时间:2021-04-15 16:10:37

标签: spring-boot microservices

假设我有一个微服务 A,它有 3 个实例。同样,对于微服务 B,B 服务有 5 个实例。

我将为微服务 A 和 B 设置单独的数据库,这很好。但是 A 或 B 的每个微服务实例都需要单独的 db 实例吗?

我的意思是说对于微服务 A 的 3 个实例,我是否需要有 3 个单独的 db 实例?或者 A 的所有实例都指向一个 db 实例?哪种方法更好?

1 个答案:

答案 0 :(得分:2)

这个问题很广泛,没有更好或更坏的方法,这完全取决于您的用例和用户负载。

根据您的问题,我了解到您需要生成单个微服务的单独实例,因此理想情况下,服务 A 的所有实例都应该可以访问相同的数据。您可以创建多主架构,在该架构中您可以通过设置多主数据库将您的服务连接到每个副本。这篇文章为您提供了有关它的概述scale-out-blog。但是,这样做会产生很多影响,您需要仔细设计您的服务来实现这一点。

您还可以创建指向同一个数据库的单独实例,您无需关心复制和其他复杂问题。