gRPC--Java(简介)
简介:
grpc是谷歌的一个开源的rpc(远程服务调用)框架,可以让各个语言按照指定的规则通过http2协议相互调用,这个规则是用Protocol Buffer(谷歌的一个数据描述语言)写的一个.proto文件,grpc的目的就是为了让服务调用更方便。
在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC 服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。
目前支持的语言有C, C++,C#,Java, Node.js, Python,Go等,大部分语言都是通过插件根据.proto文件生成对应的代码,用生成好的代码,创建或调用grpc服务。
grpc官方文档:http://doc.oschina.net/grpc?t=58009
gRPC 允许你定义四类服务方法:
1:单项 RPC
即客户端发送一个请求给服务端,从服务端获取一个应答,就像一次普通的函数调用。
2:服务端流式 RPC
即客户端发送一个请求给服务端,可获取一个数据流用来读取一系列消息。客户端从返回的数据流里一直读取直到没有更多消息为止
3:客户端流式 RPC
即客户端用提供的一个数据流写入并发送一系列消息给服务端。一旦客户端完成消息写入,就等待服务端读取这些消息并返回应答。
4:双向流式 RPC
即两边都可以分别通过一个读写数据流来发送一系列消息。这两个数据流操作是相互独立的,所以客户端和服务端能按其希望的任意顺序读写,例如:服务端可以在写应答前等待所有的客户端消息,或者它可以先读一个消息再写一个消息,或者是读写相结合的其他方式。每个数据流里消息的顺序会被保持。
从.proto文件开始
| syntax | 指定语言版本 |
| option | 修改配置选项 |
| service | 声明一个服务 |
| rpc | 声明一个方法 |
| resturns | 方法的返回值 |
| message | 定义一个消息类型 |
| repeated | 数组 |
| stream | 用流来交互 |
这里是.proto语法教程:https://www.jianshu.com/p/da7ed5914088

浙公网安备 33010602011771号