我是微服务体系结构的新手,但我已经了解到使用这种体系结构的一个关键优势是缩放.
假设我们有一个微服务实例,它连接到一个Mysql数据库。
现在我们需要将放大意味着每个实例都有自己的数据库? 或者它将是3个实例和一个数据库?
欢迎提供任何信息。
通常你希望有一个单一的数据库支持微服务。否则,您只是在创建同一服务的多个实例。要避免锁定表和/或行是一个挑战,因此服务扩展是值得的。
经典SQL数据库很难横向扩展(通常不支持多个写副本,并且依赖于单个节点进行写)。如果您的服务是地理分布的,这也代表了一个挑战。有多种方法可以减少这些影响(不使用SQL数据库,消息队列),但哪种方法最匹配取决于每个上下文。 为了以防万一,在几个微服务之间共享数据库绝对是一种反模式。即使用数据库作为集成点。