Apache Ignite 数据隔离

Apache Ignite Data Seggregation

我有一个在固定区域 (MYAPP_REGION) 上使用固定缓存名称(MyApp.Data.Class1MyApp.Data.Class2、...等)创建持久缓存的应用程序 我正在为 2 个不同的客户部署此应用程序的 2 个实例,但他们使用相同的 ignite 集群。

区分实例之间数据的正确方法是什么:我是将缓存名称更改为按客户命名还是每个客户一个区域就足够了?

在 rdbms 场景中,我们将创建 2 个不同的数据库;所以我想知道当使用 ignite 作为存储解决方案时我们将如何实现同样的事情。

好吧,正如您所提到的,有多种选择。如果这只是逻辑划分并且您对资源共享没问题,就像使用常规 RDBM 一样,则使用多个 caches/tables 或不同的 SQL schemas. Keep in mind the desired data distribution and the amount of caches/tables per customer. I.e. if you have 3 nodes and 3 customers with about the same amount of data, most likely you'd like to use a custom affinity function 使它们并置在单个节点上,但这是一个有点不同的问题.

如果您想要更多的物理划分,例如,如果其中一个客户需要更多资源或特殊功能(如本机持久性),那么最好采用不同区域的方法,但最终可能会拥有单独的集群。