Микро-сервисы на FastAPI с использованием PostgreSQL, SQLAlchemy 2.0 и Docker.
- FastAPI - веб-фреймворк для создания API
- Uvicorn - ASGI сервер для FastAPI
- SQLAlchemy - ORM для работы с базой данных
- PostgreSQL - реляционная база данных
- Alembic - управление миграциями
- Docker и Docker Compose - контейнеризация
- Make - упрощение команд для запуска проекта
- Poetry - управление зависимостями
- Pydantic - валидация данных
- Loki - система логирования
- Grafana - система мониторинга
- Promtail - инструмент для сбора логов
- Kafka - система обмена сообщениями
- Kafka-UI - визуальный интерфейс для работы с Kafka
- Locust - инструмент для нагрузочного тестирования
- Docker и Docker Compose
- Python 3.13+
- Poetry
- Make
-
Клонируйте репозиторий:
git clone https://github.com/powermacintosh/microservices-example.git cd microservices-example
-
Запустите приложение с помощью Makefile:
make build # Сборка/пересборка проекта
make down # Остановка проекта
make up # Запуск проекта
make test
После запуска документация API Gateway будет доступна по адресу:
- Swagger UI: http://localhost:5000/docs/
Также API Gateway предоставляет возможность работы с API через GraphQL:
- GraphQL UI: http://localhost:5000/api/v1/graphql
Создайте файл .env
в корне сервиса
gateway/
, tasks/
.
Аналогично файлу .env.example
.
MODE = DEVELOPMENT
Логи приложения отправляются в Loki и доступны через Grafana.
Grafana: http://localhost:3010
Логин
- admin
Пароль
- admin (при первом входе)
Connections
=> Loki
=> Add new data source
- Connection-url:
http://loki:3100
- ⚙️ Save & Test
Drilldown
=> Logs
Kafka-UI: http://localhost:8080
Locust: http://localhost:8089
Этот проект распространяется под лицензией MIT.