Azure Service Service Fabric状态服务状态是否跨分区共享?

时间:2017-06-08 06:18:11

标签: azure-service-fabric

我正在开展一项有状态服务,为我们的客户管理大量产品的库存。每个客户都属于一个租户组,该组可能在其自己的分区中具有此有状态服务的实例。因此,具有Id 10的租户和具有Id 11的租户可以在同一分区中(让我们假设)。

每个租户都可以访问Id = 100的项目的库存(例如)。每次有人想要购买此商品时,我都会检查该租户是否存在库存,如果没有,我会通知主叫应用程序(在这种情况下为可靠的应用程序)并让他知道。

但是,我注意到我正在存储一个可靠的字典,其中包含项目ID的密钥和库存计数。我注意到即使服务属于单独的分区,它们仍然访问同一个对象。这是真的,即使这些服务位于不同的分区下,它们仍然具有相同的基础状态吗?

如果是这样,直接在Actor级别存储此信息会更有意义吗?我没有在演员级别看到可靠的集合,因此我构建了一个可由Actor调用的状态服务,但在我之前的Akka实现中,我会将此状态存储在Actor级别。

我很好奇是否有人实施了类似的东西,并且可以阐明这一点。

提前感谢您的回复!

Anup Marwadi

1 个答案:

答案 0 :(得分:1)

不,不在不同分区之间共享状态。那会破坏目的;通过划分来保持大型数据集的可管理性。

考虑通过为每个租户创建一个Application实例来实现多租户。通过这种方式,租户之间永远不会有任何数据共享,您可以轻松备份/开启/离开租户。

This文章很好地解释了服务分区。

相关问题