gRPC para Java: bibliotecas, configuración y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

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

Recommendations