Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 具有微服务的分布式网络_Asp.net_Social Networking_Microservices_Azure Service Fabric - Fatal编程技术网

Asp.net 具有微服务的分布式网络

Asp.net 具有微服务的分布式网络,asp.net,social-networking,microservices,azure-service-fabric,Asp.net,Social Networking,Microservices,Azure Service Fabric,我读了很多关于微服务和使用案例的书。Azure Service Fabric是开发此类服务的绝佳框架 我从Service Fabric中发现了这种很好的使用模式: 在本例中,有一种微服务类型将用户表示为可靠的有状态参与者。每个用户都是该服务的一个实例 因此,如果我有一千个用户,那么我将有一千个actor实例。就像在Facebook上一样,我可以很容易地更新我和朋友的订阅源。例如,用户参与者服务的状态存储了我的社交提要和我朋友的社交提要以及我们的社交状态条目。这使得快速获取这些信息非常容易,显示

我读了很多关于微服务和使用案例的书。Azure Service Fabric是开发此类服务的绝佳框架

我从Service Fabric中发现了这种很好的使用模式:

在本例中,有一种微服务类型将用户表示为可靠的有状态参与者。每个用户都是该服务的一个实例

因此,如果我有一千个用户,那么我将有一千个actor实例。就像在Facebook上一样,我可以很容易地更新我和朋友的订阅源。例如,用户参与者服务的状态存储了我的社交提要和我朋友的社交提要以及我们的社交状态条目。这使得快速获取这些信息非常容易,显示这些信息的延迟很低,等等

这是非常有效的,因为用户通常没有朋友。我想知道您将在哪里存储公共提要,其中包含所有可用用户的社会状态条目?例如,我可以迭代所有用户参与者实例并获得所有状态。但这不会很快,因为您必须找到所有的参与者实例等等。这样做有什么模式或最佳实践吗?可能是另一种有状态的服务类型,表示公共可用的社会状态?当用户更新其社交状态时,他将自动更新其朋友的提要,如服务结构示例中所示,如果新社交状态为public,他还可以更新“public”提要。现在,除了自己的feed和朋友的feed之外,每个用户都可以获得所有(可能是过滤过的)公共社交状态

这是实现这一功能的好方法吗?客户端(用户)将连接到他的actor服务实例并请求整个提要。actor服务实例将连接到公共服务实例并请求过滤后的公共提要条目。然后,actor实例将这些条目与他自己的条目合并,并将其返回给用户以显示数据。或者客户端直接连接每个服务(公共服务实例和用户参与者服务实例),结果将在客户端合并

Client --getFeed--> UserActorService --getFeed--> PublicService

如果您知道此类问题的最佳实践或权衡,请为我指出正确的方向

       --getFeed--> PublicService
Client|
       --getFeed--> UserActorService