gpt4 book ai didi

c# - 用于用户表示的 Service Fabric Service 与 Service Fabric Actors

转载 作者:行者123 更新时间:2023-11-30 23:30:29 24 4
gpt4 key购买 nike

在我的应用程序中,用户可以在 map 上发布事件。应用程序的入口点是一个无状态的 web api 服务。为了在内部代表用户,我想要一个用户服务。我应该何时使用 Reliable Stateful Actors 以及何时使用 Reliable Stateful Services 来存储每个用户的配置文件数据和发布的事件?

当客户端在前端创建新用户时,参与者或服务应在内部创建新用户。每次用户登录时,Web API 服务都应将所有用户交互转发给用户的内部表示(Actor 或服务)。例如。用户发布新事件,Web API 服务找到用户并将发布的事件转发给他。因为发布的事件是公开的,所以我也想有一个可靠的有状态事件服务。在用户内部存储发布的事件后,用户服务应将事件转发给事件服务。

例如:

Client/User --> WebApiService --> UserService/UserActor --> EventService

当用户想要在 map 上查看所有公共(public)事件时,应该是这样的:

Client/User <-- WebApiService <-- EventService

因为事件有地理引用,所以我想根据地理编码或类似的东西对 EventService 进行分区。

我应该为这样的应用程序选择哪种编程模型(参与者和/或服务),为什么?

最佳答案

这两种方法都适用于这种情况,但听起来您并不需要此处的 Actor 模式的功能,因此我建议从 Reliable Service 开始并将用户存储在 Reliable Dictionary 中。请记住,Actor 是在 Reliable Services 之上实现的特定模式,因此在某些方面您将受限于该模式的约束,如果没有仔细规划,这可能会在以后出现问题。例如,对一组参与者运行查询效果不佳,因此如果您稍后决定需要对用户群运行查询,那么使用 Reliable 会更好易于查询的词典。

对于您的事件服务,是的,您当然可以按地理坐标进行分区。我过去这样做的一种方法是将地理坐标转换为 quadkeys ,这是在一维键中表示 2D 空间数据的便捷方式。但是,请记住,您可能会遇到局部热点,这可能会导致您的分区出现一些集群(您的大部分用户都集中在大城市周围吗?如果是这样,这些分区将比其他分区拥有更多数据)。

关于c# - 用于用户表示的 Service Fabric Service 与 Service Fabric Actors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com