如何将用户数据存储本地化到每个用户的地理区域?

问题描述 投票:0回答:1

我想将国际网络应用程序的用户数据存储在物理托管在适合区域的数据中心的数据存储中(将美国用户的数据保存在美国托管的数据中心,将欧洲用户的数据保存在欧盟数据中心,中国的中国用户数量等)。我正在寻找一种策略,让成员和开发团队感觉所有数据都是一个无缝的数据空间。

虽然我追求的是高级架构/基础设施概念(我将使用基于 TypeScript 的 Next.js 应用程序,几乎肯定托管在 Vercel 上),但其他提供商(例如 PlanetScale 或 AWS)肯定也在考虑之中。

我最初的本能是将应用程序的许多实例部署到每个区域,每个实例都有自己的区域数据存储,将它们与一个全局目录表绑定在一起,该全局目录表进行同步/复制,并将每个 guid 映射到可以从中获取其信息的区域实例。询问过。

关于最佳实践已有哪些智慧和/或现有解决方案?

typescript database-design globalization distributed-system infrastructure
1个回答
0
投票

您正在寻找的方法称为区域化。

例如,假设我只为美国和欧盟客户提供服务。为简单起见,我们假设我们使用 IP 允许列表仅允许来自这些区域的客户进入;所有其他访问者都会看到一个页面“我们在您所在的地区不可用”。

要使服务区域化,(至少)应该发生两件事:a)数据应存储在适当的区域中,b)数据也应在适当的区域中进行处理。就像每个区域都有自己的完整堆栈 - 数据库、日志记录、网络服务器等。

在该基础设施之上,我们实施基于 IP 的重定向,以确保来自欧盟或美国的用户留在正确的区域化堆栈中。

从技术角度来看,您将在每个数据中心(至少一个欧盟和一个美国)创建完全相同的一组基础设施。

© www.soinside.com 2019 - 2024. All rights reserved.