gpt4 book ai didi

azure - 每个国家/地区架构的数据库

转载 作者:行者123 更新时间:2023-12-03 06:11:19 26 4
gpt4 key购买 nike

目前我们有一个包含 SQL 数据库的网站。两者都托管在 Azure 的一个区域中

我有一个业务请求,要将我们美国客户的所有数据存储在美国数据中心,不进行复制。因此,我们需要托管在不同地区(美国、欧盟、亚洲)的多个数据库(相同的架构、不同的数据)。

我们的 API 如何将所有数据库的数据整合在一起仍有待决定,但我愿意接受建议。

是否有特定的应用程序架构来描述这种场景?有没有例子?

最佳答案

弹性数据库客户端库在 EF 中提供了执行此操作的支持,请参阅 https://learn.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-use-entity-framework-applications-visual-studio .

本质上,它允许您设置规则来确定针对特定请求使用哪个数据库,因此您可以为每个客户拥有一个数据库。

我没有亲自使用过这个库,但之前自己动手过。如果你自己做的话,模式基本上是这样的;您创建一个主数据库,其中包含所有客户的列表,包括有关他们所在区域的信息。然后,您创建一个工厂,为给定客户创建数据库连接字符串,然后设置您的代码,以便当它需要 DbContext 时,它会询问工厂,然后工厂将构造连接字符串并创建具有正确连接的 DbContext字符串。

首先使用 EF 代码,将自动为您创建数据库。困难的部分是使用 Code First 处理迁移。我在启动时实现了一个循环,该循环将显式调用每个数据库上的“应用迁移”。挑战在于 EF Code First 不希望您拥有多个数据库,因此您必须实现迁移代码可以使用的自定义连接工厂。我一时记不起具体的细节,但如果您想手动处理它并首先使用 EF 代码,请告诉我,我会尝试挖掘代码。

关于azure - 每个国家/地区架构的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50829272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com