我知道我们正在比较两种不同的技术,但我想知道两者的优缺点。 WCF 现在已经存在将近十年了。直到现在,Java 世界中不存在类似的东西吗?
在非常高的层次上,它们似乎都在处理相同的工具空间。
但是,我可以发现的差异:
简而言之:
GRPC 似乎是一个更加专注的服务框架,它在多个平台上都很好地完成了一项工作。
WCF 更通用,但目前仅限于 .net(WCF 正在移植到 .net 核心,但在撰写本文时,只有客户端功能在 .net 核心上)
除了提到的答案,我想补充一点,gRPC 不支持 windows/kerberos 身份验证,这是企业界事实上的身份验证模式。
因此,很难从 WCF 迁移到 gRPC。
正如汤姆已经提到的:
WCF 使用 XML/JSON 或 windows binary
虽然 gRPC 使用二进制,这使得消息在客户端/服务器端点上反序列化变得更精简和更快。 只需删除人类可读性功能即可。
另外,请注意
WCF
需要额外的配置(和麻烦)来遵守HTTP2
以获得利润,例如:更短的头部和身体(这意味着更快的传输),更安全和可靠的连接,以及多路复用(又名并行的多个请求/响应),服务器推送等等......,而gRPC
已经接受了它。