何时使用远程调用与反向代理与微服务通信的服务结构



我在前端和另一个后端设置了 2 个注明的类型集群。前端具有无状态服务,后端具有状态完整和参与者服务。现在我已经看到了他们使用反向代理和http://调用与有状态服务通信的示例,以及他们使用远程调用调用 fabric://的其他地方 如果在前端和后端节点类型之间发生数据密集型传输,什么时候应该使用每个,哪个是更好的协议?

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

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

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

你可以同时使用两者,绝对没问题。

它远不止于此,但我可以给出一个简单的概述是:

使用 HTTP 通信,服务仅依赖于彼此的端点,并且在开发和部署期间可以彼此隔离处理两者,即使您更改服务版本和技术堆栈,它们也会进行通信。您可以使用不同的技术,例如:Java,GO,NodeJS,并且仍然可以在服务之间保持顺畅的通信。

使用 Remoting,您可能会获得更快的通信,但服务之间的耦合更高,因为两者都需要理解用于通信的相同接口和实体,以保持它们同步(兼容(大多数时候需要同时部署两个服务的新版本。

.

如果性能在开始时不是问题,我建议使用 HTTP 进行简单操作,如果不满足您的需求,则进行迁移。

最新更新