> 백엔드 개발 > Golang > gRPC의 `mustEmbedUnimplemented` 메서드는 무엇이며 향후 호환성을 어떻게 보장합니까?

gRPC의 `mustEmbedUnimplemented` 메서드는 무엇이며 향후 호환성을 어떻게 보장합니까?

Susan Sarandon
풀어 주다: 2024-11-30 17:59:09
원래의
954명이 탐색했습니다.

What is gRPC's `mustEmbedUnimplemented` Method and How Does it Ensure Forward Compatibility?

gRPC의 mustEmbedUnimplemented 이해 메서드*

gRPC-go는 최근 업데이트에서 mustEmbedUnimplemented를 도입했습니다* 진행을 보장하는 방법 서버의 호환성. 하지만 정확히 어떤 역할을 합니까?

mustEmbedUnimplemented 이전*

다음과 같이 서버 구현을 등록하려면 서버 구현을 직접 등록해야 했습니다.

        pb.RegisterFooBarServiceServer(
            server,
            &FooBarServer{}, // or whatever you use to construct the server impl
        )
로그인 후 복사

서버에 특정 메소드 구현이 부족한 경우 오류가 발생할 수 있습니다.

mustEmbedUnimplemented 소개*

업데이트된 protoc-gen-grpc-go 컴파일러를 사용하면 향후 호환성이 기본값이 됩니다. 이는 다음을 의미합니다.

  1. mustEmbedUnimplementedFooBarServiceServer 지정: 서버 구현에 이 문을 포함하면 새 메서드가 명시적으로 구현되지 않을 때 컴파일 시간 오류를 방지할 수 있습니다. 그러나 구현되지 않은 메서드가 호출되면 런타임 오류(code.Unimplemented)가 발생합니다.
  2. Unsafe FooBarServiceServer를 사용하여 선택 해제: 개발자는 대신 UnsafeFooBarServiceServer를 삽입하여 상위 호환성을 선택 해제할 수 있습니다. . 이 인터페이스는 mustEmbedUnimplementedFooBarServiceServer() 메서드를 통합하여 컴파일 시간 오류를 제거하는 동시에 새 핸들러의 명시적 구현을 ​​허용합니다.

향후 호환성 구성

추가로, 사용 시 다음 옵션을 설정하여 상위 호환성을 비활성화할 수 있습니다. protoc-gen-grpc-go:

protoc --go-grpc_out=require_unimplemented_servers=false:.
로그인 후 복사

이점

mustEmbedUnimplemented*는 서버가 항상 상위 호환되도록 보장하여 예상치 못한 오류 발생을 방지합니다. 구현되지 않은 방법으로. Unsafe FooBarServiceServer를 선택 해제함으로써 개발자는 상위 호환성 원칙을 계속 준수하면서 이전 버전과의 호환성을 유지할 수 있습니다.

위 내용은 gRPC의 `mustEmbedUnimplemented` 메서드는 무엇이며 향후 호환성을 어떻게 보장합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿