Heim >Backend-Entwicklung >Golang >Wie stellt „mustEmbedUnimplemented*' in gRPC-go die Vorwärtskompatibilität für Serverimplementierungen sicher?
MustEmbedUnimplemented* Methoden in gRPC für Vorwärtskompatibilität
grpc-go hat kürzlich die Methode mustEmbedUnimplemented* eingeführt, um dies sicherzustellen Vorwärtskompatibilität in Serverimplementierungen. Bisher konnten Serverimplementierungen einen Dienst registrieren, ohne alle in der Protodefinition definierten Methoden zu implementieren. Dies führte zu Fällen, in denen neue, dem Proto hinzugefügte Methoden aufgrund fehlender Implementierungen auf dem Server zu Fehlern bei der Kompilierung führten.
Mit der Methode „mustEmbedUnimplemented“*:
// Implements gRPC FooBarServiceServer type FooBarService struct { grpc.UnsafeFooBarServiceServer // Opt out of forward compatibility // other fields }So deaktivieren Sie die Vorwärtskompatibilität bei der Codegenerierung:
protoc --go-grpc_out=require_unimplemented_servers=false:.Die Methode mustEmbedUnimplemented
* stellt sicher, dass Serverimplementierungen immer auf dem neuesten Stand sind mit der neuesten Proto-Definition, um potenzielle Inkonsistenzen zu vermeiden. Es bietet eine elegante Möglichkeit, neue Methoden hinzuzufügen, ohne vorhandenen Code zu beschädigen und gleichzeitig die Abwärtskompatibilität aufrechtzuerhalten.
Das obige ist der detaillierte Inhalt vonWie stellt „mustEmbedUnimplemented*' in gRPC-go die Vorwärtskompatibilität für Serverimplementierungen sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!