Как отправить сообщение в gRPC сервис

«Как отправить сообщение в gRPC сервис» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для отправки сообщения в gRPC сервис нужно создать клиент, подключиться к серверу и вызвать нужный метод. Пример:

// Подключение к серверу
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
    log.Fatalf("did not connect: %v", err)
}
defer conn.Close()

// Создание клиента
client := pb.NewYourServiceClient(conn)

// Подготовка сообщения
req := &pb.RequestMessage{
    Field1: "value",
    Field2: 123,
}

// Отправка сообщения
resp, err := client.YourMethod(context.Background(), req)
if err != nil {
    log.Fatalf("could not call method: %v", err)
}

log.Printf("Response: %v", resp)

Ключевые моменты:

  1. Используйте grpc.Dial для подключения
  2. Создайте клиент через сгенерированный конструктор (NewYourServiceClient)
  3. Подготовьте сообщение согласно proto-контракту
  4. Вызовите метод с контекстом и сообщением
  5. Обработайте возможные ошибки

Для безопасного подключения используйте grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(...)) вместо WithInsecure в production.