Loading repository data…
Loading repository data…
volchok96 / repository
WB Tech: level # 0 (Golang). Demo service with a simple interface that displays order information.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Сервис обработки заказов - это демонстрационный сервис для управления и отображения данных о заказах. Сервис подключается к базе данных PostgreSQL, подписывается на Kafka для получения данных о заказах, кэширует данные в памяти и предоставляет HTTP API для получения информации о заказах по их идентификаторам.
Клонируйте репозиторий:
git clone https://github.com/volchok96/golang-wbtech-level-0.git
cd golang-wbtech-level-0
Установите зависимости:
go mod tidy
Для локального запуска: Создайте файл конфигурации в корневой директории проекта с именем config.local.yaml:
kafka:
broker: "localhost:9092"
group_id: "order-group"
topic: "orders"
postgres:
host: "localhost"
port: 5432
user: "postgres"
password: "mypass"
dbname: "orderdb"
memcached:
host: "localhost"
port: "11211"
Для запуска в Docker: Создайте файл конфигурации в корневой директории проекта с именем config.docker.yaml (Kafka будет развернут локально):
kafka:
broker: "localhost:9092"
group_id: "order-group"
topic: "orders"
postgres:
host: "db"
port: 5432
user: "postgres"
password: "mypass"
dbname: "orderdb"
memcached:
host: "memcached"
port: "11211"
CREATE DATABASE orderdb;
Данные о заказе доступны по адресу:
http://localhost:8080/order?id=1
В параметр id GET-запроса необходимо подставить ID требующегося заказа. При переходе по ссылке выше отобразится информация о заказе с id = 1.
Запустите сервис обработки заказов:
make run
Запустите сервис отправки уведомления:
make notify
Для тестирования конечной точки публикации заказов с помощью WRK
Запустите нагрузочный тест:
make wrk-local
Для тестирования конечной точки публикации заказов с помощью Vegeta:
Запустите нагрузочный тест:
make vegeta-local
Это создаст отчет.
Чтобы запустить интеграционные тесты:
make test-integration
Для запуска и генерации отчета по нагрузочному тестированию:
make test-local
Соберите Docker-образы с использованием переменной окружения APP_ENV=docker и запустите конейнеры в фоновом режиме:
make docker
Запустите сервис:
make run
Для тестирования конечной точки публикации заказов с помощью WRK
Запустите нагрузочный тест:
make wrk-docker
Для тестирования конечной точки публикации заказов с помощью Vegeta:
Запустите нагрузочный тест:
make vegeta-docker
Это создаст отчет.
Для запуска и генерации отчета по нагрузочному тестированию:
make test-docker
Этот проект лицензирован под MIT License.
Если у вас есть вопросы или предложения, пожалуйста, свяжитесь со мной:
Спасибо всем, кто внес свой вклад в развитие этого проекта!