Quick start with grpc

Edit
Update time: 2021-03-06

This document introduces how to quickly access the Soul Gateway using Grpc. You can get the code example of this document by clicking here.

Environment to prepare

Please refer to the setup and launch soul-admin and soul-bootstrap.

Note: soul-bootstrap need to import grpc dependencies

<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-plugin-grpc</artifactId>
    <version>${project.version}</version>
</dependency>

Run the soul-examples-grpc project

Download soul-examples-grpc

Run the following command under soul-examples-grpc to generate Java code

mvn protobuf:compile 
mvn protobuf:compile-custom 

Execute the org.dromara.soul.examples.grpc.SoulTestGrpcApplication main method to start project.

The following log appears when the startup is successful:

2021-02-10 01:57:02.154  INFO 76 --- [           main] o.d.s.e.grpc.SoulTestGrpcApplication     : Started SoulTestGrpcApplication in 2.088 seconds (JVM running for 3.232)
2021-02-10 01:57:02.380  INFO 76 --- [pool-1-thread-1] o.d.s.client.common.utils.RegisterUtils  : grpc client register success: {"appName":"127.0.0.1:8080","contextPath":"/grpc","path":"/grpc/echo","pathDesc":"","rpcType":"grpc","serviceName":"echo.EchoService","methodName":"echo","ruleName":"/grpc/echo","parameterTypes":"echo.EchoRequest,io.grpc.stub.StreamObserver","rpcExt":"{\"timeout\":-1}","enabled":true} 

Grpc plugin settings

  • enabled the grpc plugin in the soul-admin plugin management.

Testing

The soul-examples-grpc project will automatically register interface methods annotated with @SoulGrpcClient in the soul gateway after successful startup.

Open Plugin Management -> grpc to see the list of plugin rule configurations

Use PostMan to simulate HTTP to request your Grpc service