protocol buffers:
Basics tutorial | Java | gRPC
一、包路径配置:
option java_package = "io.grpc.examples.routeguide";
二、grpc请求与返回:
simple rpc
// Obtains the feature at a given position.
rpc GetFeature(Point) returns (Feature) {}
server-side streaming
// Obtains the Features available within the given Rectangle. Results are
// streamed rather than returned at once (e.g. in a response message with a
// repeated field), as the rectangle may cover a large area and contain a
// huge number of features.
rpc ListFeatures(Rectangle) returns (stream Feature) {}
client-side streaming
// Accepts a stream of Points on a route being traversed, returning a
// RouteSummary when traversal is completed.
rpc RecordRoute(stream Point) returns (RouteSummary) {}
server-side streaming & client-side streaming
// Accepts a stream of RouteNotes sent while a route is being traversed,
// while receiving other RouteNotes (e.g. from other users).
rpc RouteChat(stream RouteNote) returns (stream RouteNote) {}
三、message type define
// Points are represented as latitude-longitude pairs in the E7 representation
// (degrees multiplied by 10**7 and rounded to the nearest integer).
// Latitudes should be in the range +/- 90 degrees and longitude should be in
// the range +/- 180 degrees (inclusive).
message Point {
int32 latitude = 1;
int32 longitude = 2;
}
四、生成客户端和服务代码
POM.xml
io.grpc grpc-netty-shaded1.30.2 io.grpc grpc-protobuf1.30.2 io.grpc grpc-stub1.30.2 org.apache.tomcat annotations-api6.0.53 provided kr.motd.maven os-maven-plugin1.6.2 org.xolstice.maven.plugins protobuf-maven-plugin0.6.1 com.google.protobuf:protoc:3.12.0:exe:${os.detected.classifier} grpc-java io.grpc:protoc-gen-grpc-java:1.30.2:exe:${os.detected.classifier} compile compile-custom
编译:
服务端代码生成:
客户端代码生成:



