【发布时间】:2021-12-10 06:31:09
【问题描述】:
一个关于可扩展性的简单问题。我一直在研究可扩展性,我想我理解它背后的基本概念。您可以使用 Kubernetes 之类的编排器来管理系统的自动可扩展性。因此,这样,随着特定微服务的调用需求增加,编排器将创建它的新实例,以处理需求的需求。现在,在我们的案例中,我们正在构建一个类似于 Microsoft 的“eShop On Containers”示例的微服务结构:
现在,每个微服务都有自己的数据库来管理,就像在我们的应用程序中一样。我的问题是:在升级这个系统时,通过创建某个微服务的新实例,比如说上面示例中的“Ordering microservice”,那不会创建一组新的数据库吗?在我们的应用程序中,我们使用的是 SQLite,因此每个微服务都有自己的数据库副本。我假设为了能够升级这样的系统,需要每个微服务连接到外部 SQL Server。但如果是这样的话,那不是瓶颈吗?我的意思是,拥有多个微服务实例来满足特定服务的更多需求,但所有这些实例仍在访问单个数据库服务器?
【问题讨论】:
-
"...需要每个微服务连接到外部 SQL Server..." -- 是的。在非常高的负载下,这种连接可能会成为瓶颈。在这些情况下,我会将所有更新排队到一个非常快的队列中。然后另一个进程可以从队列中读取并以延迟的方式更新 SQL Server 数据库。
标签: sql database docker kubernetes microservices