MustEmbedUnimplemented* Méthodes dans gRPC pour la compatibilité ascendante
grpc-go a récemment introduit la méthode mustEmbedUnimplemented* pour garantir compatibilité ascendante dans les implémentations de serveur. Auparavant, les implémentations de serveur pouvaient enregistrer un service sans implémenter toutes les méthodes définies dans la définition du proto. Cela a conduit à des cas où de nouvelles méthodes ajoutées au proto entraîneraient des erreurs de compilation en raison d'implémentations manquantes sur le serveur.
Avec la méthode mustEmbedUnimplemented* :
Par exemple :
// Implements gRPC FooBarServiceServer type FooBarService struct { grpc.UnsafeFooBarServiceServer // Opt out of forward compatibility // other fields }
Pour désactiver la compatibilité ascendante dans la génération de code :
protoc --go-grpc_out=require_unimplemented_servers=false:.
La méthode mustEmbedUnimplemented* garantit que les implémentations du serveur sont toujours à jour avec la dernière définition de proto, évitant ainsi les incohérences potentielles. Il fournit un moyen gracieux d'ajouter de nouvelles méthodes sans casser le code existant tout en conservant la 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!