What is gRPC?의 번역
3896 단어 gRPC
이 문서에서는 gRPC와 프로토콜 버퍼에 대해 소개합니다. gRPC는 프로토콜 버퍼를 인터페이스 정의 언어(IDL)와 기본 메시지 교환 형식으로 모두 사용할 수 있습니다. gRPC나 프로토콜 버퍼에 익숙하지 않은 분은 이 문서를 읽으십시오. 먼저 gRPC의 동작을 확인하려면 빠른 시작을 참조하십시오.
개요
gRPC를 사용하면 클라이언트 애플리케이션이 다른 머신에서 서버 애플리케이션의 메소드를 로컬 객체처럼 직접 호출할 수 있으므로 분산 애플리케이션 및 서비스를 쉽게 만들 수 있습니다. 많은 RPC 시스템과 마찬가지로 gRPC는 서비스를 정의하고 인수와 반환 형식으로 원격으로 호출할 수 있는 메서드를 지정한다는 아이디어를 기반으로 합니다. 서버 측에서 서버는 이 인터페이스를 구현하고 gRPC 서버를 실행하여 클라이언트 호출을 처리합니다. 클라이언트 측에서 클라이언트는 서버와 동일한 메소드를 제공하는 스텁(일부 언어에서는 단순히 클라이언트라고 함)을 가지고 있습니다.
gRPC 클라이언트와 서버는 Google의 서버에서 자신의 데스크톱에 이르기까지 다양한 환경에서 실행 및 통신할 수 있습니다. 또한 gRPC에서 지원하는 모든 언어로 만들 수 있습니다. 따라서 예를 들어 Go, Python 또는 Ruby 클라이언트를 사용하여 Java에서 gRPC 서버를 쉽게 만들 수 있습니다. 또한 최신 Google API에는 gRPC 버전의 인터페이스가 있어 애플리케이션에 Google 기능을 쉽게 통합할 수 있습니다. 프로토콜 버퍼 사용 기본적으로 gRPC는 구조화된 데이터를 직렬화하기 위해 Google의 성숙한 오픈 소스 메커니즘인 프로토콜 버퍼를 사용합니다(JSON과 같은 다른 데이터 형식에서도 사용할 수 있음). 이것이 어떻게 작동하는지에 대한 간단한 소개입니다. 프로토콜 버퍼에 대해 이미 알고 있다면 다음 섹션으로 진행하십시오. 프로토콜 버퍼를 다룰 때 첫 번째 단계는 프로토 파일에서 직렬화하려는 데이터의 구조를 정의하는 것입니다. 이것은 .proto 확장자가있는 일반 텍스트 파일입니다. 프로토콜 버퍼 데이터는 메시지로서 구조화된다. 각 메시지는 필드라고 하는 일련의 이름-값 쌍을 포함하는 정보의 작은 논리 레코드입니다. 이것이 간단한 예입니다. message Person { 문자열 이름 = 1; int32 id=2; bool has_ponycopter=3; } 다음으로, 데이터 구조를 지정하면(자), 프로토콜 버퍼 컴파일러 protoc 를 사용해, 프로토 정의로부터 좋아하는 언어로 데이터 액세스 클래스를 생성합니다. 이것들은 각 필드의 단순한 액세서 ( name() 나 set_name () 와 같은)와, 구조 전체를 원시의 바이트에 직렬화/퍼스 하는 메소드를 제공합니다. 선택한 언어가 C++인 경우 위의 예제에서 컴파일러를 실행하면 Person이라는 클래스가 생성됩니다. 그 후, 이 클래스를 어플리케이션으로 사용해, Person 프로토콜 버퍼 메세지를 생성, 직렬화, 및 취득할 수 있습니다. 이 예제에서 자세히 설명하는 것처럼 프로토콜 버퍼 메시지로 RPC 메서드 인수와 반환 형식을 지정하여 일반 프로토콜에 gRPC 서비스를 정의합니다. // The greeter service definition. service Greeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) {} } // The request message containing the user's name. message HelloRequest { 문자열 이름 = 1; } // The response message containing the greetings message HelloReply { 문자열 메시지 = 1; } gRPC는 protoc과 특수 gRPC 플러그인을 함께 사용하여 proto 파일에서 코드를 생성합니다. 그러나 gRPC 플러그인을 사용하면 생성된 gRPC 클라이언트 및 서버 코드와 메시지 유형을 생성, 직렬화 및 검색하기 위한 일반 프로토콜 버퍼 코드를 얻을 수 있습니다. 이 예제는 나중에 자세히 설명합니다. 프로토콜 버퍼에 대한 자세한 내용은 프로토콜 버퍼 문서를 참조하십시오. 또한 선택한 언어의 빠른 시작에서 gRPC 플러그인을 사용하여 protoc을 가져오고 설치하는 방법을 찾을 수 있습니다. 프로토콜 버퍼 버전 프로토콜 버퍼는 잠시 전에 오픈 소스 사용자가 사용할 수 있었지만, 우리의 예는 proto3이라는 프로토콜 버퍼의 새로운 맛을 사용합니다. 이것은 약간 단순화 된 구문, 몇 가지 유용한 새로운 기능을 가지고 있으며, 더 많은 언어를 지원합니다. 이것은 현재 protocol buffers GitHub repo, Java, C++, Python, Objective-C, C#, 라이트 런타임 (Android Java), Ruby 및 JavaScript 및 golang/protobuf GitHub repo Go 언어 에서 사용할 수 있으며 개발 중인 언어도 증가하고 있습니다. proto3 언어 가이드 및 각 언어에 대해 사용 가능한 참조 문서에서 더 많은 것을 찾을 수 있습니다. 참조 문서에는
.proto
파일 형식의 공식 사양도 포함되어 있습니다.일반적으로 proto2 (현재 기본 프로토콜 버퍼 버전)를 사용할 수 있지만 proto3 서버와 통신하는 proto2 클라이언트 (또는 그 반대)와의 호환성 문제를 피할뿐만 아니라 gRPC에서 지원하는 모든 언어를 사용할 수 있으므로 proto3를 gRPC와 함께 사용하는 것이 좋습니다.
Reference
이 문제에 관하여(What is gRPC?의 번역), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tikidunpon/items/28690424aa09efe81597텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)