20

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

4

3 回答 3

30

在非常高的水平上,它们似乎都针对相同的工具空间。

但是,我可以了解的差异:

  • GRPC 不使用 SOAP 通过 http 在客户端和服务之间进行调解。WCF 支持 SOAP。
  • GRPC 只关心 RPC 风格的通信。除了 RPC,WCF 还支持和促进 REST 和 POX 样式的服务。
  • GRPC 提供对多种编程语言的支持。WCF 支持 C#(和其他 .net 语言)。
  • GRPC 使用 protobuf 进行在线序列化,WCF 使用 XML/JSON 或 windows 二进制文件。
  • GRPC 是开源的

简而言之:

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

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

于 2016-02-29T09:31:27.133 回答
3

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

因此,从 WCF 迁移到 gRPC 非常困难。

于 2020-10-29T11:44:44.817 回答
2

正如汤姆已经提到的:

WCF 使用 XML/JSON 或 windows 二进制文件

而 gRPC 使用二进制,这使得消息在客户端/服务器端点上反序列化更加精简和快速。只需放弃人类可读性功能即可。
另外,请注意,WCF需要额外的配置(和麻烦)才能HTTP2获得利润,例如:更短的 header 和 body(这意味着更快的传输)、更安全和可靠的连接以及多路复用(也就是并行的多个请求/响应) ), server-push 等等......,虽然gRPC已经接受了它。

于 2020-07-17T11:22:52.287 回答