2

我可以使用 Azure Service Fabric 可靠的有状态参与者来解决地理映射问题吗?假设我有一个演员代表一个事件。此事件由在地图上设置此类事件的用户创建。很多用户可以创建很多事件。每个代表参与者的事件都存储一个地理坐标和另一个状态。这将导致我可以在地图上分布数百万个事件。

所以现在我想要一个基于地图区域或基于坐标矩形的代表事件参与者的分组参与者。分组参与者存储此地图区域中所有事件参与者的列表。鉴于性能问题,是否可以并建议动态创建这样的分组参与者?该区域将由用户输入确定。

4

1 回答 1

1

这是可能的,但它可能不会执行得很好,因为分组参与者必须向每个参与者发出单独的请求以获取其地理坐标,而这些请求并不便宜,因为它们涉及数据序列化和网络请求。

仅在Reliable Service中使用Reliable Dictionary可能会更容易且性能更好。每个坐标和任何相关数据都可以是字典中的一个条目。您可以枚举、执行 LINQ 查询,并且通常像使用普通字典一样进行编程。

对于数百万个项目,您可能希望对服务进行分区以将其分布在多个节点上。您可以完全控制跨分区的密钥分配,因此您可以通过散列地理坐标或使用四键来按区域进行分区等操作。

于 2016-01-08T20:48:23.760 回答