Назад к вопросам
Positive Technologies
Junior — Middle
77
Каким образом организовать передачу данных через протоколы между микросервисами в вашей практике?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В практике передачи данных между микросервисами часто используют протоколы HTTP/REST, gRPC или message brokers (например, Kafka, RabbitMQ).
Для HTTP/REST обычно передают данные в формате JSON или Protobuf. Пример на Go с использованием HTTP клиента:
package main
import (
"bytes"
"encoding/json"
"net/http"
)
type Payload struct {
ID int `json:"id"`
Name string `json:"name"`
}
func sendData(url string, data Payload) error {
jsonData, err := json.Marshal(data)
if err != nil {
return err
}
resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData))
if err != nil {
return err
}
defer resp.Body.Close()
return nil
}
Для gRPC создают protobuf-схемы и используют сгенерированные клиенты и серверы, что обеспечивает эффективную бинарную передачу и строгую типизацию.
При использовании message brokers данные отправляются в очередь и потребляются асинхронно, что повышает устойчивость и масштабируемость системы.