我应该在同一微服务中使用一个还是多个数据库?

时间:2019-12-18 17:56:15

标签: microservices

因此,我刚刚开始学习微服务体系结构,因此,如果这是一个简单的问题,请原谅我。

比方说,我已经创建了2个微服务UserPosts,每个微服务都有自己的数据库,并且为了遵循良好的实践而相互分离,该架构看起来像这样:

enter image description here

现在,突然之间,我开始收到Posts微服务的大量呼叫,并且该微服务无法处理请求,因此我想对其进行扩展并创建一个新实例。

现在我有1个实例User 我有两个实例Posts

这两个Posts实例是否共享同一数据库或 每个实例都有自己的数据库,我必须找到一种方法来同步它们以保持数据一致性?

2 个答案:

答案 0 :(得分:0)

  

这两个Post实例共享同一个数据库

是的,他们正在共享同一个数据库。

无论您将微服务部署到多个实例还是一个实例,您的微服务的部署实例都将访问并使用属于该微服务的一个数据库。 您的微服务的所有实例都应访问同一数据库。这是标准且最常见的用例。也有例外。 Here是一个类似的问题,我在其中做了详细说明。

答案 1 :(得分:0)

您的所有微服务(帖子)实例将共享一个数据库。

通常,它是针对所有特定微服务(在这种情况下为Post)实例的单个数据库。但是,在某些情况下,我们可以将数据库的主副本与只读副本一起使用,以将读写流量分配给不同的各个DB。现在,我们甚至可以使用多主机配置,其中甚至可以有一个以上的主机,但是该架构需要更多的考虑,并且通常适合于流量非常大的站点。