>백엔드 개발 >Golang >골랭 grpc 설치

골랭 grpc 설치

WBOY
WBOY원래의
2023-05-16 13:27:09869검색

Golang은 뛰어난 동시성 및 성능으로 널리 알려진 매우 인기 있는 프로그래밍 언어입니다. 최근 gRPC는 클라우드 컴퓨팅 및 마이크로서비스 아키텍처의 등장으로 개발자 세계에서 점점 인기를 얻고 있습니다. gRPC는 Google에서 개발하고 홍보하는 고성능 오픈소스 범용 RPC 프레임워크입니다. 여러 언어를 지원하고 강력한 확장성을 제공하므로 분산 애플리케이션 구축에 선호되는 프레임워크 중 하나입니다. 이 문서에서는 Golang에 gRPC를 설치하고 빠르게 시작하는 방법을 보여줍니다.

1단계: 프로토콜 버퍼 설치

gRPC 사용을 시작하려면 먼저 프로토콜 버퍼를 설치해야 합니다. 프로토콜 버퍼는 서로 다른 애플리케이션 간에 데이터를 쉽게 전달하고 저장할 수 있는 직관적인 구조의 데이터 직렬화 형식입니다. 프로토콜 버퍼는 Java, C++ 및 Golang을 포함한 여러 프로그래밍 언어를 지원합니다.

Golang에 프로토콜 버퍼를 설치하려면 다음을 수행하세요.

1단계: GitHub에서 프로토콜 버퍼 가져오기

Golang의 프로토콜 버퍼는 GitHub 저장소를 통해 배포됩니다. 먼저 GitHub에서 프로토콜 버퍼 소스 코드를 가져와야 합니다. 터미널을 열고 다음 명령을 실행하세요:

$ go get -u github.com/golang/protobuf/protoc-gen-go

2단계: 프로토콜 버퍼 설치

프로토콜 버퍼를 설치하려면 Homebrew와 같은 패키지 관리자 또는 yum과 같은 대규모 Linux 패키지 관리자를 사용해야 합니다. 터미널을 열고 다음 명령을 실행하세요.

Homebrew

$ brew install protobuf

Linux

$ yum install protobuf

2단계: gRPC 설치

프로토콜 버퍼를 설치한 후 이제 gRPC를 설치할 수 있습니다. Golang에서는 go get 명령을 사용하여 GitHub 저장소에서 gRPC를 설치할 수 있습니다. 터미널을 열고 다음 명령을 실행합니다.

$ go get -u google.golang.org/grpc

이 명령은 gRPC 프레임워크 및 관련 종속성을 다운로드하고 설치합니다.

3단계: gRPC 사용

이제 gRPC 설치 단계를 완료했으므로 Golang에서 gRPC 사용을 시작할 수 있습니다. 다음으로 Golang과 함께 gRPC를 사용하는 방법을 보여주는 간단한 예를 살펴보겠습니다.

1단계: .proto 파일 만들기

이 예에서는 간단한 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" 유형의 응답을 반환합니다.

2단계: gRPC 코드 생성

.proto 파일을 생성한 후 프로토콜 버퍼 컴파일러를 사용하여 Golang 코드를 생성해야 합니다. 이렇게 하려면 터미널을 열고 다음 명령을 실행하세요.

$ protoc --go_out=plugins=grpc:. hello.proto

이 명령은 .proto 파일에 정의한 메시지와 서비스에 대한 Golang 코드가 포함된 "hello.pb.go"라는 파일을 생성합니다.

3단계: gRPC 서비스 구현

이제 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"이라는 함수도 제공합니다.

4단계: gRPC 서비스 실행

이제 gRPC 서비스 구현이 완료되었으므로 터미널에서 서비스를 시작할 수 있습니다.

$ go run main.go

결론

gRPC는 오픈 소스 범용 RPC 프레임워크입니다. 광범위한 인기를 얻었습니다. Golang에서는 몇 가지 간단한 단계로 gRPC를 설치하고 사용할 수 있으므로 분산 애플리케이션을 더 쉽게 구축할 수 있습니다. 이 문서가 gRPC를 시작하는 데 도움이 되고 효율적이고 확장 가능하며 안정적인 분산 서비스를 구축하는 데 도움이 되기를 바랍니다.

위 내용은 골랭 grpc 설치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.