Skip to content

SoundRush/SoundRush-API-tols

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛠 SoundRush Microservices API — Документация

Описание

Этот сервис — универсальный API-шлюз и балансировщик для микросервисов. Он:

  • Хранит конфигурацию сервисов (IP, порт, health-check, команда запуска) в файле config.json.
  • Каждые 5 секунд проверяет доступность сервисов (health-check).
  • Если сервис не отвечает — автоматически пытается его поднять (например, через docker-compose).
  • Работает в вечном цикле и не завершает работу.

Быстрый старт

  1. Клонируйте репозиторий и перейдите в папку проекта
  2. Настройте файл конфигурации сервисов (см. ниже)
  3. Запустите API-шлюз:
# Установите зависимости
 go mod tidy
# Запустите API
 go run main.go

Пример конфигурации (config.json)

{
  "services": [
    {
      "name": "auth",
      "ip": "127.0.0.1",
      "port": 8080,
      "health_check": "/health",
      "start_cmd": "docker-compose up -d auth"
    },
    {
      "name": "tracks",
      "ip": "127.0.0.1",
      "port": 8081,
      "health_check": "/health",
      "start_cmd": "docker-compose up -d tracks"
    }
  ]
}

Описание полей:

  • name — уникальное имя сервиса
  • ip — IP-адрес сервиса
  • port — порт сервиса
  • health_check — endpoint для проверки работоспособности (например, /health)
  • start_cmd — команда для запуска сервиса (например, команда docker-compose)

Как добавить новый сервис

  1. Добавьте объект сервиса в массив services в config.json.
  2. Укажите корректные IP, порт, health-check и команду запуска.
  3. Перезапустите API-шлюз (или просто обновите config.json — мониторинг подхватит изменения при перезапуске).

Как работает мониторинг и автозапуск

  • Каждые 5 секунд шлюз отправляет HTTP GET-запрос на health-check endpoint каждого сервиса.
  • Если сервис не отвечает (ошибка или не 200 OK) — выполняется команда из start_cmd для попытки поднять сервис.
  • Все действия логируются в консоль.

Пример логов

Загружена конфигурация сервисов: &{...}
Микросервис: auth, адрес: 127.0.0.1:8080
Микросервис: tracks, адрес: 127.0.0.1:8081
Сервис auth работает нормально
Сервис tracks не отвечает. Пытаюсь поднять...
Пытаюсь поднять сервис tracks: docker-compose up -d tracks

Требования

  • Go 1.18+
  • Для автозапуска сервисов должны быть установлены все необходимые утилиты (например, docker-compose)

FAQ

Q: Какой endpoint должен быть у health-check? A: Любой, который возвращает 200 OK, если сервис жив (например, /health).

Q: Можно ли запускать не через docker-compose? A: Да, укажите любую shell-команду в start_cmd (например, запуск бинарника или скрипта).

Q: Как добавить новый сервис? A: Просто добавьте его в config.json и перезапустите шлюз.

Q: Как изменить интервал проверки? A: Измените значение в main.go (по умолчанию 5 секунд).


Структура проекта

  • main.go — основной код API-шлюза и балансировщика
  • config.json — конфигурация сервисов
  • docker-compose.yml — пример для запуска сервисов через Docker

Контакты и поддержка

Если возникли вопросы — создайте issue или напишите в Telegram: @your_nick


SoundRush Microservices API — быстро, надёжно, удобно!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published