Azure Service Fabric 有状态服务状态是否跨分区共享?
Is Azure Service Fabric Stateful Service State shared across partitions?
我正在开发一项有状态服务,为我们的客户管理一系列产品的库存。每个客户都属于一个租户组,该组可能在他自己的分区中有此有状态服务的实例。因此,Id 为 10 的租户和 Id 为 11 的租户可能在同一个分区中(假设)。
每个租户都可以访问 ID = 100 的项目的库存(例如)。每次有人想要购买该商品时,我都会检查该租户的库存是否存在,如果不存在,我会通知调用应用程序(在本例中为 Reliable Actor)并让他知道。
但是,我注意到我正在存储一个可靠的字典,其中包含项目 ID 和库存计数的键。我注意到即使服务属于不同的分区,它们仍然访问同一个对象。即使这些服务位于不同的分区下,它们仍然具有相同的底层状态,这是真的吗?
如果是这样,将此信息直接存储在 Actor 级别是否更有意义?我没有在 Actor 级别看到可靠的集合,因此我构建了一个由 Actor 调用的有状态服务,但在我之前的 Akka 实现中,我会将此状态存储在 Actor 级别。
我很好奇是否有人实现了类似的东西并且可以阐明这一点。
提前感谢您的回复!
阿努普马尔瓦迪
不,不同分区之间不共享状态。那会破坏目的;通过划分来保持大型数据集的可管理性。
考虑通过为每个租户创建一个应用程序实例来实现多租户。这样租户之间永远不会有任何数据共享,您可以轻松 backup/on-/off-board 个租户。
This 文章很好地解释了服务分区。
我正在开发一项有状态服务,为我们的客户管理一系列产品的库存。每个客户都属于一个租户组,该组可能在他自己的分区中有此有状态服务的实例。因此,Id 为 10 的租户和 Id 为 11 的租户可能在同一个分区中(假设)。
每个租户都可以访问 ID = 100 的项目的库存(例如)。每次有人想要购买该商品时,我都会检查该租户的库存是否存在,如果不存在,我会通知调用应用程序(在本例中为 Reliable Actor)并让他知道。
但是,我注意到我正在存储一个可靠的字典,其中包含项目 ID 和库存计数的键。我注意到即使服务属于不同的分区,它们仍然访问同一个对象。即使这些服务位于不同的分区下,它们仍然具有相同的底层状态,这是真的吗?
如果是这样,将此信息直接存储在 Actor 级别是否更有意义?我没有在 Actor 级别看到可靠的集合,因此我构建了一个由 Actor 调用的有状态服务,但在我之前的 Akka 实现中,我会将此状态存储在 Actor 级别。
我很好奇是否有人实现了类似的东西并且可以阐明这一点。
提前感谢您的回复!
阿努普马尔瓦迪
不,不同分区之间不共享状态。那会破坏目的;通过划分来保持大型数据集的可管理性。
考虑通过为每个租户创建一个应用程序实例来实现多租户。这样租户之间永远不会有任何数据共享,您可以轻松 backup/on-/off-board 个租户。
This 文章很好地解释了服务分区。