REST + JSON方式,grpc优势体现在:
- 高性能:快10倍以上
- 多种传输方式:普通请求、单向stream、双向stream
- 代码自动生成:通过工具自动生成协议代码:包括数据结构定义、服务接口定义
- 跨平台/多语言支持:Linux/Windows/Mac,C++/Golang/PHP等
- 安全:支持TLS
- 其他特性:加密、metdata、认证、拦截机制、服务发现、负载均衡等等
劣势体现在:
- 对浏览器支持不太优化:grpc严重依赖HTTP/2,浏览器需要web同时支持HTTP/1.1和HTTP/2。
- 分析和调试较为麻烦:比如protobuf是二进制难以编辑、阅读。
- 上手门槛较高