Mar*_*rno 5 azure-service-fabric
我目前为系统中的每个用户都有一个ReliableActor.这个actor被恰当地命名为User,并且为了这个问题有一个Location属性.按位置查询用户的推荐方法是什么?
我目前的想法是创建一个包含ReliableDictionary的ReliableService.字典中的数据将是用户数据的投影.如果我这样做,那么我需要:
另一种替代方法是在Service Fabric外部拥有持久性存储,例如数据库.这感觉不对,因为它违背了使用Service Fabric的一些理想.如果我这样做,我会假设类似于上面的东西,但使用无状态服务?
非常感谢你.
我个人正在探索使用Actors作为我的实体的主要数据存储(即:真实来源).随着Actors的添加,更新或删除,我使用MassTransit发布事件.然后我让Reliable Statefull Services订阅了这些活动.服务接收事件并更新其内部的IReliableDictionary.然后可以查询服务以查找客户端所需的实体.每个服务仅保留执行查询所需的实体数据.
我也在探索使用EventStore来发布事件.这样,如果将来我决定需要以新的方式查询实体,我可以创建一个新服务并重放所有事件.
这些Pub/Sub方法确实意味着查询服务最终是一致的,但在分布式系统中,这似乎是常态.
如果您发现自己需要通过某些数据属性(例如 User.Location)查询数据集,那么可靠集合就是正确的答案。可靠的演员不应该以这种方式被质疑。
在您的例子中,用户可以只是可靠字典中的一行。
归档时间: |
|
查看次数: |
2375 次 |
最近记录: |