Golang으로 gRPC 시도
개시하다
gRPC에 대한 지식이 아직 정리되지 않았기 때문에 나는 gRPC가 도대체 어떤 특징을 가지고 있는지 재조사하고 실제 조작을 시도했다.
gRPC 소개
gRPC는 프로세스 간 통신 기술로 로컬 함수 호출처럼 간단하게 연결, 호출, 조작, 디버깅이 분산된 서로 다른 응용 프로그램을 연결할 수 있다.
gRPC는 인터페이스 정의 언어(IDL) 및 메시지 교환 형식으로 프로토콜 버퍼를 사용합니다.서버와 클라이언트 모두 IDL을 사용하여 코드를 생성할 수 있습니다.
서비스와 소비자 간의 인터넷 통신은 HTTP/2로 진행된다.
gRPC는 전통적인 프로세스 간 통신 기술(CORBA, RMI, SOAP, REST...)이다.단점을 극복할 수 있는 과정 간 통신 기술이다.
gRPC의 이점
4
gRPC는 HTTP/2에 프로토콜 버퍼를 설치합니다
빠른 설정으로 서비스 인터페이스를 먼저 정의합니다
응용 프로그램 간 통신에 사용되는 유형을 명확하게 정의했다
gRPC 서비스 정의는 언어에 의존하지 않고 자신이 좋아하는 언어를 선택할 수 있습니다
로컬은 클라이언트나 서버 측의 흐름 전송을 지원합니다
인증, 암호화, 복원력(사선 및 시간 초과), 메타데이터 교환, 압축, 부하 분산, 서비스 발견 등 공공 기능을 지원한다
gRPC는 CNCF의 일부분으로 대부분의 최신 프레임워크는 gRPC의 로컬 지원이다.예를 들어 Envoy 등은 gRPC를 통신 프로토콜로 지원한다
구글, 스퀘어, 리프트, 넷플릭스, Docker, 사과, 코어OS 등 많은 대형 과학 기술 기업들이 이 제도를 채택했다
gRPC의 단점
메시지는 Protobuf로 인코딩되기 때문에 수신 효율이 높지만 이진 형식이기 때문에 사람들이 식별할 수 없다
브라우저 지원은 REST/HTTP 프로토콜에 비해 제한적입니다
한 번 시험해 보았다
gRPC를 정리해 봤고 실제로 가동해 봤어요.
이번에 시도한 소스는 아래 창고에 있어요.
프로필 작성
서비스의 정의를 기록합니다.
프로토 파일의 쓰기 방법은 여기를 참조하십시오.
서버 및 클라이언트의 소스 생성
Makefile을 만들어 보았습니다.명령을 내리다.문건을 기초로 하다
hello.proto
두 개의 파일을 생성합니다.$ make setup
다음 명령으로 생성된 파일을 삭제합니다.
$ make clean
시험해 보다
Server
다음 명령을 사용하여 서버를 시작할 수 있습니다.
$ go run cmd/server/server.go --port 50051
Client
상기 서버를 시작한 상태에서 클라이언트를 실행합니다.
4
$ go run cmd/client/client.go --name Alice
이렇게 표시하면 성공입니다.Greeting: Hello Alice
끝맺다
견본 수준에 불과하지만 그래도 한번 시험해 보았다.
또한, Giithub Actions는 프로모션 파일의 lint와 파괴적인 변경을 감지할 수 있는 Buf 도구를 설정해 보았다.
참조 페이지
추가 참조 페이지.
Reference
이 문제에 관하여(Golang으로 gRPC 시도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/y16ra/articles/23e0cd68251554텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)