Azure service fabric 服务结构何时使用远程调用vs反向代理与微服务通信

Azure service fabric 服务结构何时使用远程调用vs反向代理与微服务通信,azure-service-fabric,Azure Service Fabric,我在前端和另一个后端安装了2个类型集群。前端有无状态服务,后端有状态服务和参与者服务。现在我看到了一些示例,其中他们使用反向代理和http://调用与有状态服务通信,以及其他使用远程调用的地方,调用fabric://如果在前端和后端节点类型之间发生数据密集型传输,则应在何时使用每个调用,哪种协议更好 实际上结构://本身不是协议,它只是服务结构命名服务的语法,用于解析服务的实际位置。如果您不必向外部客户端公开服务,远程处理是一个更好的选择,因为它将根据客户端和服务上的位置选择协议(如果两者都位于

我在前端和另一个后端安装了2个类型集群。前端有无状态服务,后端有状态服务和参与者服务。现在我看到了一些示例,其中他们使用反向代理和http://调用与有状态服务通信,以及其他使用远程调用的地方,调用fabric://如果在前端和后端节点类型之间发生数据密集型传输,则应在何时使用每个调用,哪种协议更好

实际上结构://本身不是协议,它只是服务结构命名服务的语法,用于解析服务的实际位置。如果您不必向外部客户端公开服务,远程处理是一个更好的选择,因为它将根据客户端和服务上的位置选择协议(如果两者都位于同一节点上,则可以使用进程间通信)使用http://时,您只能使用此协议。

结构://只是一个Uri方案。它用于标识命名服务,如:fabric://MyApp/MyService

这个问题没有正确的答案,选择正确的方法需要考虑许多变量

你可以两者都用,这绝对是好的

远不止这些,但我可以给出一个简单的概述:

使用HTTP通信,服务只依赖于彼此的端点,并且在开发和部署过程中两者可以彼此隔离处理,即使您更改服务版本和技术堆栈,它们也将通信。您可以使用不同的技术,如:Java、GO、NodeJS,并且仍然可以在您的服务之间进行平滑的通信

使用远程处理,您可能会获得更快的通信,但服务之间的耦合度更高,因为两者都需要理解用于通信的相同接口和实体,为了保持它们的同步(兼容),在大多数情况下需要同时部署这两个服务的新版本

如果一开始性能不是问题,我建议简单地使用HTTP,如果不满足您的要求,则迁移