gRPC para Java: bibliotecas, configuración y ejemplos de uso
gRPC es un framework moderno y de alto rendimiento para llamadas a procedimientos remotos (RPC), desarrollado por Google. Utiliza Protocol Buffers (protobuf) como lenguaje de definición de interfaces y serialización de datos, así como HTTP/2 para el transporte. En el ecosistema Java, gRPC permite crear microservicios rápidos, tipográficamente seguros y escalables. En esta página, analizaremos las bibliotecas principales, el proceso de configuración del proyecto y proporcionaremos ejemplos funcionales de servidor y cliente.
Bibliotecas principales para gRPC en Java
Para trabajar con gRPC en Java se utilizan tres dependencias clave:
- io.grpc:grpc-netty-shaded — capa de transporte basada en Netty. Proporciona soporte para HTTP/2 y seguridad (TLS). Recomendada para la mayoría de los proyectos.
- io.grpc:grpc-protobuf — integración con Protocol Buffers. Permite generar clases Java a partir de archivos
.proto. - io.grpc:grpc-stub — biblioteca para crear stubs de cliente y servidor. Simplifica la invocación de métodos remotos.
Adicionalmente, puede ser necesario protobuf-java (para trabajar con mensajes) y el plugin protobuf-gradle-plugin (o su equivalente para Maven) para la generación de código en la fase de compilación.
Configuración del proyecto (Maven)
Agregue las siguientes dependencias en 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>También conecte el plugin para la generación de código a partir de archivos .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>Creación del archivo .proto
Defina el servicio y los mensajes en el archivo src/main/proto/hello.proto:
syntax = "proto3";
package hello;
service Greet También en la biblioteca
Generación de PDF en C++: bibliotecas, herramientas y ejemplos de código
Trabajo con XML en Java: DOM, SAX, StAX y JAXB
Configuración de aplicaciones Java: bibliotecas y herramientas para la gestión de ajustes