【问题标题】:Service Remoting in Azure Service Fabric vs RestFul callsAzure Service Fabric 中的服务远程处理与 RestFul 调用
【发布时间】:2019-04-05 22:14:33
【问题描述】:

我正在尝试了解在 Azure 服务结构中使用服务远程处理与进行安静调用的具体用例。感谢您对性能、安全性和任何相关方面的任何见解。

【问题讨论】:

    标签: rest azure azure-service-fabric


    【解决方案1】:

    好吧,让我们来看看。当涉及到外部客户端和 SF 服务之间的通信时,我会使用 restful 调用,因为服务远程处理是特定于 SF 的,并且几乎可以在使用任何语言的每个平台上使用 restful api。

    对于 SF 内部的服务之间的通信,您可以使用 Service Remoting。基本上,它是 Service Fabric 的 .NET RPC 实现,请参阅 this excellent answer。您可以使用其他机制,但该机制是开箱即用的,可为您提供内置的重试策略和服务解决方案等。

    但很难给出最终的建议,因为这取决于服务的种类及其目的。有时您希望使用远程处理进行直接通信,有时您希望在两个服务之间使用消息总线。

    最重要的一点是使用 https 与集群进行通信,以便公共可访问的 SF 服务。

    更多背景阅读:

    Connect and communicate with services in Service Fabric

    Secure service remoting communications

    【讨论】:

      【解决方案2】:

      你没有提到交流的目的,所以答案可能很广泛:

      技术上,

      休息

      REST 通信是通用的,任何平台上的任何客户端都可以使用,是使用 HTTP 协议向 SF 集群外部的客户端公开服务的更好方式。

      服务可以在不破坏与现有客户端的兼容性的情况下发展,客户端和服务之间没有硬契约。

      这种服务到服务通信方法的问题是服务必须公开一个 HTTP 服务器来接收 REST 调用,并且每个调用都被序列化为 JSON。 http 服务器必须有一些路由规则来将调用重定向到正确的处理程序,从而向服务中添加了很多在简单场景中不需要它的东西。

      SF 远程处理

      SF Remoting 是 .Net Remoting 的实现,它是 .Net 的一个组件,用于通过 TCP 提供二进制通信。它的速度要快得多,因为它不需要将数据序列化为 JSON 并验证所有 json 规则进行序列化。

      用法是服务和客户端之间的简单接口实现。无需托管 HTTP 服务器并为其配置路由规则,使用起来更加简单。

      缺点,

      Remoting 的第一个问题是 Client 和 Service 必须使用相同的语言,在这种情况下是 .Net(PS:你也可以使用其他语言,但不是直截了当的),并且还要谈论同样的主题,这就是为什么两者都需要访问一个合同(接口),该合同将告诉他们应该如何相互通信。这会将客户端与服务耦合,并且可能会同时在双方发生更新。

      第二,因为第一个,你受限于 .Net 和 Service Fabric,你不能在集群外运行 SF Remoting,它与 SF Runtime 高度耦合。

      远程处理工作在 HTTP 协议下的一个级别,将其暴露到 Internet 的风险高于 HTTP 服务器。并不意味着它不安全,但它不像 WebServers 那样频繁地接收升级。

      总之,

      如果您想要服务之间的性能和简单通信,请使用 Remoting。

      如果您不希望客户端与任何客户端\平台使用的服务和灵活性相耦合,请使用 REST。

      或者,也许您可​​以使用其他协议。这个 SO 有一些可能有用的信息:Azure ServiceBus vs ServiceRemoting, HTTP and WCF

      【讨论】:

        猜你喜欢
        • 2017-07-26
        • 2018-03-26
        • 2017-09-18
        • 2017-09-17
        • 1970-01-01
        • 2017-06-09
        • 2018-08-17
        • 2018-12-16
        • 2017-12-17
        相关资源
        最近更新 更多