grpc是一个rpc调用框架,使用与thrift相同的设计,通过工具生成响应必要的代码,实现其生成代码的接口,配置grpc服务端与客户端机型工作.
这里就不说proto文件的写法,主要是提醒自己grpc的四种调用方式:
1.rpc
就是简单的方法调用,返回响应的response.
2.客户端流式
rpc sendErrorLogMessageRequestStream (stream SendErrorLogRequest) returns (SendMessageResponse) {}
//客户端可以发送多个消息,服务端返回一次消息
3.服务端式
rpc sendErrorLogMessageResponseStream (SendErrorLogRequest) returns (stream SendMessageResponse) {}
//客户端发送一次消息,服务端可以返回多次消息
4.双向流式
rpc sendErrorLogMessageStream (stream SendErrorLogRequest) returns (stream SendMessageResponse) {}
//服务端与客户端互相监听
grpc maven插件
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<!--
The version of protoc must match protobuf-java. If you don't depend on
protobuf-java directly, you will be transitively depending on the
protobuf-java version that grpc depends on.
-->
<protocArtifact>com.google.protobuf:protoc:3.0.0:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
<protoSourceRoot>src/main/resources/helloproto</protoSourceRoot>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
中文文档地址: http://doc.oschina.net/grpc?t=57966