因此,我刚刚开始学习微服务体系结构,因此,如果这是一个简单的问题,请原谅我。
比方说,我已经创建了2个微服务User
和Posts
,每个微服务都有自己的数据库,并且为了遵循良好的实践而相互分离,该架构看起来像这样:
现在,突然之间,我开始收到Posts
微服务的大量呼叫,并且该微服务无法处理请求,因此我想对其进行扩展并创建一个新实例。
现在我有1个实例User
我有两个实例Posts
这两个Posts
实例是否共享同一数据库或
每个实例都有自己的数据库,我必须找到一种方法来同步它们以保持数据一致性?
答案 0 :(得分:0)
这两个Post实例共享同一个数据库
是的,他们正在共享同一个数据库。
无论您将微服务部署到多个实例还是一个实例,您的微服务的部署实例都将访问并使用属于该微服务的一个数据库。 您的微服务的所有实例都应访问同一数据库。这是标准且最常见的用例。也有例外。 Here是一个类似的问题,我在其中做了详细说明。
答案 1 :(得分:0)
您的所有微服务(帖子)实例将共享一个数据库。
通常,它是针对所有特定微服务(在这种情况下为Post)实例的单个数据库。但是,在某些情况下,我们可以将数据库的主副本与只读副本一起使用,以将读写流量分配给不同的各个DB。现在,我们甚至可以使用多主机配置,其中甚至可以有一个以上的主机,但是该架构需要更多的考虑,并且通常适合于流量非常大的站点。