gRPC pour Java : bibliothèques et exemples d'utilisation
Dans l'architecture moderne des microservices, l'interaction efficace entre les services joue un rôle important. L'une des solutions les plus performantes est gRPC — un framework d'appel de procédure distante (RPC) de Google, basé sur HTTP/2 et Protocol Buffers. Dans cet article, nous allons examiner les bibliothèques nécessaires pour travailler avec gRPC en Java, comment configurer le projet et écrire un serveur simple avec un client.
Bibliothèques principales pour gRPC en Java
Pour développer des applications gRPC en Java, on utilise l'écosystème grpc-java. Il comprend trois composants clés :
- grpc-core — le noyau du framework, implémentant la couche de transport et la gestion des canaux.
- grpc-stub — la génération de stubs clients et serveurs à partir des fichiers proto.
- grpc-protobuf — l'intégration avec Protocol Buffers (protobuf) pour la sérialisation des données.
En complément, protoc peut être nécessaire — le compilateur pour générer des classes Java à partir des fichiers .proto. Dans les projets modernes, il est pratique d'utiliser des plugins pour Maven ou Gradle qui automatisent ce processus.
Configuration du projet avec Maven
Ajoutez les dépendances dans pom.xml :
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</artifactId> <version>1.62.2</version></dependency><dependency> <groupId>io.grpc</groupId> <artifactId>grpc-protobuf</artifactId> <version>1.62.2</version></dependency><dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> <version>1.62.2</version></dependency><dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version></dependency>Ajoutez également le plugin pour la génération de code à partir des fichiers proto :
<plugin> <groupId>org.xolstice.maven.plugins</groupId> <artifactId>protobuf-maven-plugin</artifactId> <version>0.6.1</version> <configuration> <protocArtifact>com.google.protobuf:protoc:3.25.3:exe:${os.detected.classifier}</protocArtifact> <pluginId>grpc-java</pluginId> <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.62.2:exe:${os.detected.classifier}</pluginArtifact> </configuration> <executions> <execution> <goals> <goal>compile</goal> <goal>compile-custom</goal> </goals> </execution> </executions></plugin>Définition du service via Protocol Buffers
Créez un fichier hello.proto dans le répertoire src/main/proto :
syntax = "proto3";
package example;
service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {}}
message HelloRequest { string name = 1;}
message HelloReply { string message = 1;}Après avoir exécuté mvn compile, les classes HelloRequest, HelloReply et GreeterGrpc seront générées.
Implémentation du serveur gRPC en Java
Créez une classe serveur qui implémente l'interface générée :
import io.grpc.Server;import io.grpc.ServerBuilder;import io.grpc.stub.StreamObserver;
public class HelloServer { public static void main(String[] args) throws Exception { Server server = ServerBuilder.forPort(50051) .addService Aussi dans la bibliothèque
Configuration des applications PHP : bibliothèques et outils pour un paramétrage flexible
Envoi de SMS en Go (Golang) : API de la bibliothèque golang-sms
Travailler avec les dates en Java : aperçu des bibliothèques et outils
Client Redis pour TypeScript : ioredis et redis