【发布时间】:2021-05-31 18:30:45
【问题描述】:
在多区域 Web 应用中,主用户数据库位于单个区域还是跨多个区域复制并失去一致性的常见情况?
【问题讨论】:
-
我假设“主用户数据库”只有一个事实来源,例如单个 Mongo 或 Postgres 数据库。
标签: web-applications distributed
在多区域 Web 应用中,主用户数据库位于单个区域还是跨多个区域复制并失去一致性的常见情况?
【问题讨论】:
标签: web-applications distributed
如果不考虑您的应用要求、预计吞吐量和您愿意做出的权衡,我认为不可能明确回答您的问题。
我假设您正在考虑在 Multi-master 复制方案中工作的多个 SQL DB 服务器。
您可以通过这样一种方式对数据进行分片,即使所有副本都具有完整的数据集 - 每个区域应用服务器只需要访问始终位于同一区域中的子集。这种方法的实用性在很大程度上取决于您拥有哪些数据以及您如何处理这些数据。
如果您对使用公共云没有任何疑问,您可以查看Azure Cosmos DB 或AWS Aurora - 两者都提供具有不同一致性设置的多区域数据库。这意味着尽管不是即时的,但您可以获得体面的延迟保证,这可能足以满足您的用例。
我认为不可能拥有 100% 一致的跨数据中心分布式系统。所以如果你绝对需要严格的一致性,你可能会被困在只有一个数据库上。鉴于您特别提到用户数据库,可能所有这些复杂性都不值得付出努力,因为您可以通过稍微扩展它并以最小化访问数据库的方式设计您的用户安全性来逃避例如,为后续请求使用签名的 JWT 令牌。
【讨论】: