数据库可扩展性适用于高负载应用?

我已经看到应用程序有集群Web服务器(如10到20服务器)具有可扩展性,他们可以在Web服务器之间分配负载。 但我总是看到所有使用单个数据库的网络服务器。

现在考虑任何电子商务或铁路网络应用程序,其中有数百万用户在任何时间点击应用程序。 要在Web服务器端进行扩展,我们可以进行服务器集群,但我们如何扩展数据库? 因为我们不能像多个网络服务器一样拥有多个数据库,因为一个dB将具有与其他一个不同的状态:)

更新: –在关系型DBMS中扩展数据库是不可能的,但只在像mongo db等的无SQL数据库中?

数据库端有两种不同的可伸缩性。 一个是读可伸缩性,另一个是写可伸缩性。 您可以通过垂直缩放来实现这两个目的,即在某个级别添加更多CPU和RAM。 但是,如果您需要扩展超过单个机器限制的非常大的数据,则应使用只读副本来满足读取可伸缩性和分片的写入可伸缩性。

分片不像将一些实体(鞋子)放到一台服务器上,而将其他(T恤)放到另一台服务器上。 它的工作方式就像将一些鞋子和一些T恤衫放在一台机器上,并为其他实体做这件事。

高容量数据管理的另一个解决方案是使用与您的示例更相似的微服务。 我的意思是为鞋子提供另一项T恤服务。 使用微服务,您可以将代码和数据划分到不同的项目以及不同的应用程序和数据库服务器。 因此,您可以以不同方式处理不同部分数据的可伸缩性。