Asp.net web api 从Azure服务结构中的不同应用程序与无状态web Api服务通信

Asp.net web api 从Azure服务结构中的不同应用程序与无状态web Api服务通信,asp.net-web-api,azure-service-fabric,Asp.net Web Api,Azure Service Fabric,我有两个不同的服务结构应用程序。两者都是无状态web api模型。我确实有一种情况,从应用程序1中的服务1,我需要调用作为应用程序2一部分的服务2。我正在同一集群中部署这两个应用程序。有人能建议这里的最佳做法吗。最好的沟通方式是什么。请同时提供一些示例。根据需要,有三个内置通信选项。由你决定哪一个最适合你。我个人使用的是易于快速设置的。它还允许您在客户端服务中处理异常。是sdk内置的通信模型。与通过HTTP或WCF进行的通信相比,它做的更多,尤其是在通信的客户端 当涉及到与服务结构服务或任何分布

我有两个不同的服务结构应用程序。两者都是无状态web api模型。我确实有一种情况,从应用程序1中的服务1,我需要调用作为应用程序2一部分的服务2。我正在同一集群中部署这两个应用程序。有人能建议这里的最佳做法吗。最好的沟通方式是什么。请同时提供一些示例。

根据需要,有三个内置通信选项。由你决定哪一个最适合你。我个人使用的是易于快速设置的。它还允许您在客户端服务中处理异常。

是sdk内置的通信模型。与通过HTTP或WCF进行的通信相比,它做的更多,尤其是在通信的客户端

当涉及到与服务结构服务或任何分布式系统服务的通信时,您的通信应该考虑到连接可能无法在初始尝试时建立,或者在通信过程中中断,并且您确实不应该构建解决方案以期望它始终完美地工作。原因在于服务结构在任何时候都可以决定将主节点从一个节点移动到另一个节点,节点本身可能会下降,服务可能会崩溃。服务结构的伟大之处并不奇怪,它在维护服务和节点时为您带来了很多负担

因此,就通信而言,这意味着客户机需要能够做三件事才能在分布式环境中真正工作

解析服务的地址,找出它在哪个节点上,监听哪个端口,哪个分区id和目标的副本,等等 连接到服务,打包和发送请求,然后接收和解包响应 如果通信失败,请重试解析和连接 当您使用服务远程处理客户端(如ServiceProxy和服务端侦听器)时

这是织物运输的好地方,你可以从盒子里取出所有的东西,大多数时候你也不必改变默认设置。糟糕的是,它只适用于集群内部的通信,即不能使用结构传输从外部与集群中运行的服务通信。为此,您需要HTTP或WCF


HTTPs和WCF over HTTPs通信允许您构建自己的客户端并自行处理通信。关于如何为HTTP客户端执行解析、连接和重试,有许多示例,

我认为当目标服务未绑定到任何通信协议时,服务远程处理非常适合。在我的例子中,它是一个无状态的web api。因此,它是DNS服务和反向代理之间的选择。你的意思是一样的吗?我假设他的web api只是为了与集群客户端程序之外的外部程序通信。因此,根据定义,他不需要绑定到他的web api来与其他服务通信。