如果我的数据库必须保留在一个区域中,那么将我的 API 分布到多个区域中是否有意义?

如果我的数据库必须保留在一个区域中,那么将我的 API 分布到多个区域中是否有意义?

我们目前在澳大利亚拥有 API 和数据库,并正在尝试减少其他国家的延迟。

目前,掌握同步数据库的 CAP 定理可能有点超出范围,但我们正在研究跨多个地区进行水平扩展(例如,在美国/欧盟/亚洲设有服务器)。

现在,我感到困惑的是,这种方法是否会带来延迟方面的好处?让服务器更靠近用户显然有好处,但作为交换,数据库(仍在澳大利亚)现在离用户更远了。

我希望这一切都有意义,我对 devOps 之类的东西还很陌生。

答案1

这主要取决于您的用例。例如,数据库写入与数据库读取的分布通常大于 1:10。此外,用于读取的 API 端点通常比用于创建/更新/删除操作的 API 端点使用得更多。在这种情况下,您可以为某些查询实现本地缓存以减少响应时间。

此外,为数据库设置多区域只读副本也相当容易。许多托管数据库 (MongoDB Atlas、Amazon RDS 等) 都支持此功能。

答案2

我认为这个问题缺少一些背景。

我假设您的意思是您想在(美国/欧盟/亚洲)建立 API 服务器。

这很大程度上取决于 API 实际在做什么。

如果您可以在 API 服务器上缓存,那么您可以获得更好的延迟。

相关内容