Spring Boot と一緒に gRPC を使用する例や考えがある人はいますか?
7 に答える
gRPCクライアントライブラリが必要な場合、つまりスタブを使用する場合は、私のライブラリをチェックしてください https://github.com/sfcodes/grpc-client-spring-boot
このライブラリは自動的にクラスパスをスキャンし、すべての gRPC スタブ クラスを見つけてインスタンス化し、ApplicationContext に Bean として登録します。@Autowire
他のSpring Beanと同じように簡単に注入できます。例えば:
@RestController
public class GreeterController {
@Autowired // <===== gRPC stub is autowired!
private GreeterGrpc.GreeterBlockingStub greeterStub;
@RequestMapping(value = "/sayhello")
public String sayHello(@RequestParam String name) {
HelloRequest request = HelloRequest.newBuilder().setName(name).build();
HelloReply reply = greeterStub.sayHello(request);
return reply.getMessage();
}
}
gRPCサーバーライブラリについては、 LogNet/grpc-spring-boot-starter
.
https://spring.io/blog/2015/03/22/using-google-protocol-buffers-with-spring-mvc-based-rest-servicesから始めて、SPR-13589 ProtobufHttpMessageConverter support for protobuf を
見て
ください。 3.0.0-beta4および関連するSPR-13203 Protostuff ライブラリに基づく HttpMessageConverter
これは、Spring 5 で proto3 のサポートが予定されていることです。開発中であるため、プロジェクトにとって重要なことを投票して提起することをお勧めします。
ここでは gRpc と eureka を使って通信しています。このプロジェクトは Spring-boot に基づいています
https://github.com/WThamira/grpc-spring-boot
さらに、領事として登録することもできます。このレポの完全な例
https://github.com/WThamira/gRpc-spring-boot-example
このMaven依存関係はgRpcに役立ちます
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
<version>1.0.1</version>
</dependency>
以下にプラグインショーが必要です
<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.2:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>