/grpc-java-registry-nacos

gRPC Nacos registry integration

Primary LanguageJavaApache License 2.0Apache-2.0

Nacos ECO project

Build Status

grpc-java-registry-nacos

this is common way of gRPC Nacos Java registry integration. Please feel free to add more features with this repo by sending pull requests and raising a issue.

Features

  • grpc client usage
  • grpc server builder and starter
  • integrate with Nacos
  • Automatic service registration and discovery
  • Round robin LoadBalancer which supported by gRPC

Requirements

Latest stable Apache Maven, Maven 3.2.5 or above. Note that this is build-time requirement.

Runtime requirement: JDK 8 is a recommend to run this application.

Building

You may clone this project and step into grpc-java-registry-nacos sub directory before read on.

# git clone https://github.com/nacos-group/grpc-java-registry-nacos
# cd grpc-java-registry-nacos

Run the following command to build the project(Java 1.8 is required to build the master branch).

  mvn clean install

Getting started by demo

Step 1: Start nacos server

Start a Nacos naming server is a must.

Step 2: Config for projects

Check the necessary config here You can copy this proto to your project. And do pay attention to the config usage.

`nacos_uri` means the uri of Nacos naming uri to register.
`grpc_nacos_port` means the port of Grpc server,which is needed by both server and client.

use `GrpcNacosOptions.getDescriptor().getOptions().getExtension(GrpcNacosProto.grpcNacosPort)` to get configuration of grpc port,
and `GrpcNacosOptions.getDescriptor().getOptions().getExtension(GrpcNacosProto.nacosUri)` represents the configuration of nacos registry url. 

Step 3: Start gRPC server

cd grpc-java-registry-nacos-example
mvn exec:java@server-demo

Step 4: Start gRPC client

mvn exec:java@client-demo

Step 5: Result

Calling result will be print out on the screen.

Next Steps

  • Golang will be supported when nacos-go-sdk provided.

  • More features welcome to be requested.

License

gRPC Nacos java is under the Apache 2.0 license. See the LICENSE file for details.