gRPC 和 WCF 有什么区别?

问题描述 投票:0回答:3

我知道我们正在比较两种不同的技术,但我想知道两者的优缺点。 WCF 现在已经存在将近十年了。直到现在,Java 世界中不存在类似的东西吗?

wcf grpc
3个回答
34
投票

在非常高的层次上,它们似乎都在处理相同的工具空间。

但是,我可以发现的差异:

  • GRPC 不使用 SOAP 通过 http 在客户端和服务之间进行调解。 WCF 支持 SOAP。
  • GRPC 只关心 RPC 风格的通信。除了 RPC 之外,WCF 还支持和推广 REST 和 POX 风格的服务。
  • GRPC 提供对多种编程语言的支持。 WCF 支持 C#(和其他 .net 语言)。
  • GRPC 使用 protobuf 进行在线序列化,WCF 使用 XML/JSON 或 windows 二进制文件。
  • GRPC 是开源的 - EDIT:WCF 现在也是:https://devblogs.microsoft.com/dotnet/corewcf-v1-released/

简而言之:

GRPC 似乎是一个更加专注的服务框架,它在多个平台上都很好地完成了一项工作。

WCF 更通用,但目前仅限于 .net(WCF 正在移植到 .net 核心,但在撰写本文时,只有客户端功能在 .net 核心上)


4
投票

除了提到的答案,我想补充一点,gRPC 不支持 windows/kerberos 身份验证,这是企业界事实上的身份验证模式。

因此,很难从 WCF 迁移到 gRPC。


2
投票

正如汤姆已经提到的:

WCF 使用 XML/JSON 或 windows binary

虽然 gRPC 使用二进制,这使得消息在客户端/服务器端点上反序列化变得更精简和更快。 只需删除人类可读性功能即可。
另外,请注意

WCF
需要额外的配置(和麻烦)来遵守
HTTP2
以获得利润,例如:更短的头部和身体(这意味着更快的传输),更安全和可靠的连接,以及多路复用(又名并行的多个请求/响应),服务器推送等等......,而
gRPC
已经接受了它。

© www.soinside.com 2019 - 2024. All rights reserved.