什么是grpc?
GRPC是一个高性能、通用的开源RPC框架,基于HTTP/2协议标准和Protobuf序列化协议开发,支持众多的开发语言。
同类技术有哪些?
http://colobu.com/2016/09/05/benchmarks-of-popular-rpc-frameworks/
grpc的优缺点
优点:
1.采用protobuf。protobuf是google团队开发的用于高效存储和读取结构化数据的工具。序列化反序列化直接对应程序中的数据类,不需要解析后在进行映射(XML,JSON都是这种方式)
2.支持向前兼容(忽略新加字段)和向后兼容(新加字段采用默认值),简化升级 。
3.gRPC是语言无关、平台无关的,它有很多种不同的实现。如果写好一个Protobuf协议定义,可以轻松地去生成不同语言的协议框架。
4.它支持双向的流的调用,在做一个分布式系统或者是相互调用的系统时.
缺点:
1.尚未提供“服务发现”、“负载均衡”机制 ,需要自己去实现。
2.Protobuf二进制可读性差
grpc组成部分
采用了Netty、protobuf。
grpc解决了什么问题?
系统之间的相互通信,grpc客户端可以像调用本地方法一样调用远程服务提供的接口。
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.0.3</version>
</dependency>
参考文章
https://blog.csdn.net/xuduorui/article/details/78278808
https://www.jianshu.com/p/5742496141f8