gRPC para Java: bibliotecas, configuração e exemplos de uso
gRPC é um framework moderno e de alto desempenho para chamada remota de procedimentos (RPC), desenvolvido pelo Google. Ele utiliza Protocol Buffers (protobuf) como linguagem de definição de interface e serialização de dados, além de HTTP/2 para transporte. No ecossistema Java, o gRPC permite criar microsserviços rápidos, type-safe e escaláveis. Nesta página, abordaremos as principais bibliotecas, o processo de configuração do projeto e forneceremos exemplos práticos de servidor e cliente.
Principais bibliotecas para gRPC em Java
Para trabalhar com gRPC em Java, são utilizadas três dependências principais:
- io.grpc:grpc-netty-shaded — camada de transporte baseada em Netty. Fornece suporte a HTTP/2 e segurança (TLS). Recomendado para a maioria dos projetos.
- io.grpc:grpc-protobuf — integração com Protocol Buffers. Permite gerar classes Java a partir de arquivos
.proto. - io.grpc:grpc-stub — biblioteca para criação de stubs de cliente e servidor. Facilita a chamada de métodos remotos.
Adicionalmente, podem ser necessários protobuf-java (para trabalhar com mensagens) e o plugin protobuf-gradle-plugin (ou equivalente para Maven) para geração de código durante a compilação.
Configuração do projeto (Maven)
Adicione as seguintes dependências no pom.xml:
<dependencies> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</artifactId> <version>1.62.0</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>1.62.0</version> </dependency> <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> <version>1.62.0</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency></dependencies>Também configure o plugin para geração de código a partir de arquivos .proto:
<build> <extensions> <extension> <groupId>kr.motd.maven</groupId> <artifactId>os-maven-plugin</artifactId> <version>1.7.1</version> </extension> </extensions> <plugins> <plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <configuration> <protocArtifact>com.google.protobuf:protoc:3.24.0:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.62.0:exe:${os.detected.classifier}</pluginArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions> </plugin> </plugins></build>Criação do arquivo .proto
Defina o serviço e as mensagens no arquivo src/main/proto/hello.proto:
syntax = "proto3";
package hello;
service Greet Também na biblioteca
Cliente Redis para C++: conexão, instalação e exemplos de uso
Agendador de tarefas em Go (Golang): guia para implementação de tarefas cron
Trabalhando com CSV em TypeScript: bibliotecas e exemplos de código