Ответ
Микросервисная архитектура — это подход к разработке приложений как набора небольших, независимых сервисов, каждый из которых выполняет одну бизнес-функцию.
Ключевые особенности:
- Автономность: каждый сервис работает в своём процессе и развёртывается независимо.
- Специализация: сервис решает одну конкретную задачу (например, аутентификация, платежи).
- Слабая связанность: общение через API (HTTP/RPC) или брокеры сообщений (Kafka, RabbitMQ).
- Масштабируемость: можно масштабировать отдельные сервисы под нагрузку.
Пример на Go:
// Сервис пользователей (HTTP API)
func main() {
r := gin.Default()
r.GET("/users/:id", getUserHandler)
r.Run(":8080")
}
// Сервис заказов (gRPC)
type OrderServer struct{}
func (s *OrderServer) CreateOrder(ctx context.Context, req *pb.OrderReq) (*pb.OrderResp, error) { ... }
Плюсы:
- Гибкость в выборе технологий.
- Упрощённое тестирование и деплой.
Минусы:
- Сложность мониторинга и отладки.
- Накладные расходы на межсервисное взаимодействие.
Видео-ответы
▶
▶
▶