服务间WCF REST调用是应用程序组件之间通信的最佳方式吗?

本文关键字:通信 之间 最佳 方式吗 组件 应用程序 WCF REST 调用 服务 | 更新日期: 2023-09-27 18:09:09

作为解耦过程的一部分,以促进横向应用程序扩展,我们正在慢慢地将应用程序的无状态部分分成单独的服务,这些服务要么在相同的AWS IIS实例上提供,要么在需要时分离到新的实例上。

很明显,组成web服务的一些服务是解耦的理想候选者。然而,我不确定WCF REST调用是否是相互通信的最佳方式。

通过WCF在托管应用程序中提供组件间通信的最佳解决方案是什么?目前没有框架对服务的限制,所以任何。net都可以。

服务间WCF REST调用是应用程序组件之间通信的最佳方式吗?

只有当你从客户端调用你的服务,你没有太多的控制,需要提供一个标准的接口,或者在web上调用必须使用http协议时,Rest才是好的。

如果你有一个系统,你的客户端是由你控制的,并且可以使用任何机制来调用服务,那么使用一个更有效的通信系统。如果你使用WCF,你也可以使用网络。tcpip协议会更快(或者WWS更快),或者使用协议缓冲区,节俭或其他RPC来获得最大的性能。

我也会把这些作为专用服务运行,在IIS之外,这样他们就不那么依赖于整个web基础设施。然后,您可以将它们部署到任何机器上,并在没有"单一文化"风险的情况下对它们进行加固,或者在c++中重写它们以提高效率。

如果你在一个完整的。net环境中,使用不带REST的WCF,这样客户端就可以很容易地创建本地类引用,并且可以很容易地通过web服务层进行通信。理想情况下,将服务作为网络公开(并使用)。TCP绑定,如果你真的想要一个最佳的解决方案。

将REST(全)端点通过WCF暴露给web客户端使用,其中涉及XML和/或JSON。

WCF最大的好处是你可以在相同的契约(接口)上公开多个端点,所以你的。net中间层可以通过一个端点公开,而其他服务可以通过web端点(如webHttpBinding)从需要它的客户端公开。