gRPC和WCF有什么区别?

时间:2016-02-29 07:44:36

标签: wcf grpc

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

3 个答案:

答案 0 :(得分:10)

在非常高的水平上,它们似乎都能解决相同的工具空间问题。

然而,我可以接受的差异:

  • 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核心上)

答案 1 :(得分:1)

除了提到的答案外,我还要补充一点,gRPC不支持Windows / kerberos身份验证,这是企业界的实际身份验证模式。

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

答案 2 :(得分:0)

汤姆已经提到:

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

gRPC使用二进制,而这使得消息更细,更快,可以在客户端/服务器端点上反序列化。只需删除人类可读性功能即可。
另外,请注意,WCF需要额外的配置(和麻烦)才能符合HTTP2的要求,以获取利润,例如:较短的标头和主体(这意味着更快的传输),更安全可靠的连接,和多路传输(也就是并行的多个请求/响应),服务器推送等等…,而gRPC已经接受了它。