grpc는 go 언어만 지원하는 것이 아닙니다. grpc는 HTTP/2 기반의 통신 프로토콜이며 다중 언어 RPC 프레임워크를 지원합니다. 현재 C, Java 및 Go 언어 버전, 즉 grpc, grpc-java, grpc-go를 제공합니다. C 버전은 C, C++, Node.js를 지원합니다. , Python, Ruby, Objective-C, PHP 및 C#이 지원됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
gRPC는 HTTP/2 기반의 통신 프로토콜로 다국어 RPC 프레임워크를 지원하며 모바일 및 HTTP/2용으로 설계되었습니다. gRPC는 HTTP/2 표준을 기반으로 설계되었으며 단일 TCP 연결에서 양방향 스트리밍, 흐름 제어, 헤더 압축 및 멀티플렉싱 요청과 같은 기능을 제공합니다. 이러한 기능을 통해 모바일 장치에서 더 나은 성능을 발휘하고 전력과 공간을 절약할 수 있습니다.
RPC: Remote Procedure Call의 약어로, Remote Procedure Call(Remote Method Call 또는 Remote Call이라고도 번역됨)로 번역되며 컴퓨터 통신 프로토콜입니다. 이 프로토콜을 사용하면 네트워크 간, 플랫폼 간, 언어 간 및 기타 문제에 대해 걱정할 필요 없이 로컬 서비스를 호출하는 것처럼 간단하게 원격 서비스를 호출할 수 있습니다.
gRPC 메시지 직렬화 방법은 일반적으로 바이너리 형식인 Protobuf를 사용합니다. Protobuf는 크기가 작고 네트워크 전송 속도가 빠르며 대역폭과 트래픽을 덜 차지하며 호출 성능이 더 높습니다.
gRPC의 특징
IDL
gRPC는 ProtoBuf를 사용하여 서비스를 정의합니다. ProtoBuf는 Google에서 개발한 데이터 직렬화 프로토콜입니다(XML, JSON과 유사). ProtoBuf는 데이터를 직렬화할 수 있으며 데이터 저장, 통신 프로토콜 등에 널리 사용됩니다.
다국어 지원
gRPC는 다국어를 지원하며 언어를 기반으로 클라이언트 및 서버 기능 라이브러리를 자동으로 생성할 수 있습니다. 현재 C 버전 grpc, Java 버전 grpc-java 및 Go 버전 grpc-go가 제공됩니다. 그중 grpc는 C, C++, Node.js, Python, Ruby, Objective-C, PHP 및 C# 및 기타 언어를 지원합니다. .grpc-java는 Android 개발을 지원합니다.
HTTP2
gRPC는 HTTP2 표준을 기반으로 설계되었으며 양방향 스트리밍, 헤더 압축, 멀티플렉싱 요청 등과 같은 더욱 강력한 기능을 제공합니다. 이러한 기능은 대역폭 절감, TCP 링크 시간 단축, CPU 사용량 절감, 배터리 수명 연장과 같은 상당한 이점을 제공합니다. 동시에 gRPC는 클라우드 서비스 및 웹 애플리케이션의 성능도 향상시킬 수 있습니다. gRPC는 클라이언트 측과 서버 측 모두에 적용할 수 있어 클라이언트-서버 통신이 투명하게 이루어지고 통신 시스템 구축이 단순화됩니다.
grpc를 사용하는 이유
좋은 생태: Google의 지원을 받습니다. 예를 들어, nginx는 grpc에 대한 지원도 제공하며 참조 링크
교차 언어: 교차 언어를 제공하고 자동으로 sdk
를 생성합니다. 고성능: 예를 들어 protobuf 성능은 json보다 높습니다(예: http2). 0 성능은 http1.1
강한 타이핑: 컴파일러가 많은 문제를 해결합니다
스트리밍 처리(http2.0 기반): 클라이언트 스트리밍, 서버 스트리밍 및 양방향 스트리밍을 지원합니다
1) 프로토부프란?
2) json보다 얼마나 빠릅니까?
3) protobuf가 json보다 빠른 이유는 무엇입니까?
protobuf의 바이너리 데이터 흐름과 json 데이터 흐름은 아래와 같습니다
1) 멀티플렉싱
개략도
: http는 http와 쌍을 이룰 수 있습니다. 본문은 gzip입니다. 압축되어 대역폭을 절약할 수 있습니다. 그러나 메시지 헤더에는 쿠키 및 사용자 에이전트 허용과 같이 압축되지 않은 필드도 많이 있습니다. 이러한 필드는 중복을 피하기 위해
필요합니다. 메시지의 요청과 응답이 반복되므로 중복을 피해야 합니다http/1.1을 비교하세요
텍스트 기반이고 줄바꿈을 사용하기 때문입니다. 각 키 분리: 값 다음 문제:더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !
위 내용은 grpc는 go 언어만 지원하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!