Golang은 뛰어난 동시성 및 성능으로 널리 알려진 매우 인기 있는 프로그래밍 언어입니다. 최근 gRPC는 클라우드 컴퓨팅 및 마이크로서비스 아키텍처의 등장으로 개발자 세계에서 점점 인기를 얻고 있습니다. gRPC는 Google에서 개발하고 홍보하는 고성능 오픈소스 범용 RPC 프레임워크입니다. 여러 언어를 지원하고 강력한 확장성을 제공하므로 분산 애플리케이션 구축에 선호되는 프레임워크 중 하나입니다. 이 문서에서는 Golang에 gRPC를 설치하고 빠르게 시작하는 방법을 보여줍니다.
gRPC 사용을 시작하려면 먼저 프로토콜 버퍼를 설치해야 합니다. 프로토콜 버퍼는 서로 다른 애플리케이션 간에 데이터를 쉽게 전달하고 저장할 수 있는 직관적인 구조의 데이터 직렬화 형식입니다. 프로토콜 버퍼는 Java, C++ 및 Golang을 포함한 여러 프로그래밍 언어를 지원합니다.
Golang에 프로토콜 버퍼를 설치하려면 다음을 수행하세요.
Golang의 프로토콜 버퍼는 GitHub 저장소를 통해 배포됩니다. 먼저 GitHub에서 프로토콜 버퍼 소스 코드를 가져와야 합니다. 터미널을 열고 다음 명령을 실행하세요:
$ go get -u github.com/golang/protobuf/protoc-gen-go
프로토콜 버퍼를 설치하려면 Homebrew와 같은 패키지 관리자 또는 yum과 같은 대규모 Linux 패키지 관리자를 사용해야 합니다. 터미널을 열고 다음 명령을 실행하세요.
$ brew install protobuf
$ yum install protobuf
프로토콜 버퍼를 설치한 후 이제 gRPC를 설치할 수 있습니다. Golang에서는 go get 명령을 사용하여 GitHub 저장소에서 gRPC를 설치할 수 있습니다. 터미널을 열고 다음 명령을 실행합니다.
$ go get -u google.golang.org/grpc
이 명령은 gRPC 프레임워크 및 관련 종속성을 다운로드하고 설치합니다.
이제 gRPC 설치 단계를 완료했으므로 Golang에서 gRPC 사용을 시작할 수 있습니다. 다음으로 Golang과 함께 gRPC를 사용하는 방법을 보여주는 간단한 예를 살펴보겠습니다.
이 예에서는 간단한 gRPC 서비스 엔드포인트가 포함된 "hello.proto"라는 .proto 파일을 만듭니다.
syntax = "proto3"; package hello; // 定义HelloRequest消息 message HelloRequest { string name = 1; } // 定义HelloResponse消息 message HelloResponse { string message = 1; } // 定义Hello服务 service Hello { // 定义SayHello方法 rpc SayHello (HelloRequest) returns (HelloResponse); }
이 .proto 파일에서 우리는 "SayHello"라는 메서드가 포함된 "Hello"라는 gRPC 서비스를 정의합니다. 이 메서드는 클라이언트로부터 "HelloRequest" 유형의 메시지를 수신하고 "HelloResponse" 유형의 응답을 반환합니다.
.proto 파일을 생성한 후 프로토콜 버퍼 컴파일러를 사용하여 Golang 코드를 생성해야 합니다. 이렇게 하려면 터미널을 열고 다음 명령을 실행하세요.
$ protoc --go_out=plugins=grpc:. hello.proto
이 명령은 .proto 파일에 정의한 메시지와 서비스에 대한 Golang 코드가 포함된 "hello.pb.go"라는 파일을 생성합니다.
이제 Golang의 gRPC 코드가 생성되었으므로 gRPC 서비스 구현을 시작할 수 있습니다. 다음은 간단한 예입니다.
package main import ( "context" "log" "net" "google.golang.org/grpc" pb "path/to/hello.pb.go" ) type server struct{} func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloResponse, error) { log.Printf("Received: %v", in.GetName()) return &pb.HelloResponse{Message: "Hello " + in.GetName()}, nil } func main() { lis, err := net.Listen("tcp", ":50051") if err != nil { log.Fatalf("failed to listen: %v", err) } s := grpc.NewServer() pb.RegisterHelloServer(s, &server{}) if err := s.Serve(lis); err != nil { log.Fatalf("failed to serve: %v", err) } }
이 예에서는 먼저 "서버" 구조를 정의하고 여기에 "SayHello"라는 메서드를 추가합니다. 이 메소드는 클라이언트가 보낸 "HelloRequest" 메시지를 수신하고 "HelloResponse" 메시지를 반환합니다. 마지막으로 gRPC 서비스를 시작하고 포트 번호 50051에서 수신 대기하는 "main"이라는 함수도 제공합니다.
이제 gRPC 서비스 구현이 완료되었으므로 터미널에서 서비스를 시작할 수 있습니다.
$ go run main.go
gRPC는 오픈 소스 범용 RPC 프레임워크입니다. 광범위한 인기를 얻었습니다. Golang에서는 몇 가지 간단한 단계로 gRPC를 설치하고 사용할 수 있으므로 분산 애플리케이션을 더 쉽게 구축할 수 있습니다. 이 문서가 gRPC를 시작하는 데 도움이 되고 효율적이고 확장 가능하며 안정적인 분산 서비스를 구축하는 데 도움이 되기를 바랍니다.
위 내용은 골랭 grpc 설치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!