Comprendre la méthode mustEmbedUnimplemented de gRPC*
Dans sa mise à jour la plus récente, gRPC-go a introduit la méthode mustEmbedUnimplemented* méthode pour assurer la compatibilité ascendante de ses serveurs. Mais que fait-il exactement ?
Avant mustEmbedUnimplemented*
Auparavant, l'enregistrement d'une implémentation de serveur impliquait de l'enregistrer directement, comme indiqué :
pb.RegisterFooBarServiceServer( server, &FooBarServer{}, // or whatever you use to construct the server impl )
Si le serveur manquait de certaines implémentations de méthodes, cela entraînerait des erreurs lors compilation.
Présentation de mustEmbedUnimplemented*
Avec le compilateur protoc-gen-grpc-go mis à jour, la compatibilité ascendante devient la valeur par défaut. Cela signifie :
Configuration de la compatibilité ascendante
De plus, la compatibilité ascendante peut être désactivée en définissant l'option suivante lors de l'utilisation protoc-gen-grpc-go :
protoc --go-grpc_out=require_unimplemented_servers=false:.
Avantages
mustEmbedUnimplemented* garantit que les serveurs sont toujours compatibles avec les versions ultérieures, évitant ainsi les erreurs inattendues causées par des méthodes non mises en œuvre. En se désinscrivant avec Unsafe FooBarServiceServer, les développeurs peuvent maintenir la compatibilité ascendante tout en adhérant aux principes de compatibilité ascendante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!