我试图找到我们如何使用内置的 AdoNetStorageProvider 按租户实现存储分片。我们正在为本地 SQL Server 进行规划。
例如:
- 属于租户 1 的谷物应该保留到分片 A
- 属于租户 2 的谷物应保留到分片 B
- 属于租户 3 的谷物应该坚持到分片 A
我们的分片功能将指示使用哪个分片。为此,分片功能根据粒度扩展键从数据库中获取粒度分片。(所以不应该全部都在配置文件中,因为分片的数量很少改变,但经常添加新租户)。如果这可以通过一些内置框架来实现,那就更好了。
根据https://dotnet.github.io/orleans/Documentation/Core-Features/Grain-Persistence.html?q=sharded#shardedstorageprovider shardedstorageprovider 将根据散列函数在分片中平均分配(分片)数据。这没有达到这个目的。碎片可能(或可能不是)地理定位。
github 中的分片示例是指 Azure 上的 Elastic SQL Client,据我了解,它不适用于 SQL Server。
我知道我们可以编写自己的存储提供程序。但只要有可能,我们就会尽量保持核心。