https://github.com/aventhis/go-order-service
сервис с Kafka, PostgreSQL, кешем
https://github.com/aventhis/go-order-service
Last synced: 6 months ago
JSON representation
сервис с Kafka, PostgreSQL, кешем
- Host: GitHub
- URL: https://github.com/aventhis/go-order-service
- Owner: aventhis
- Created: 2025-06-21T09:52:55.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-05T17:01:34.000Z (about 1 year ago)
- Last Synced: 2025-08-02T12:52:28.609Z (12 months ago)
- Language: Go
- Size: 42 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go Order Service
Демонстрационный микросервис на Go для обработки заказов с использованием Kafka, PostgreSQL и in-memory кеша.
## Описание
Сервис получает данные о заказах из Kafka, сохраняет их в PostgreSQL и кэширует в памяти для быстрого доступа. Есть HTTP API и простой веб-интерфейс для просмотра заказа по ID.
---
## Быстрый старт
## ⚙️ Настройка переменных окружения
1. Скопируйте `.env.example` в `.env`:
```bash
cp .env.example .env
### 1. Клонируйте репозиторий
```bash
git clone git@github.com:aventhis/go-order-service.git
cd go-order-service
```
### 2. Запустите все сервисы через Docker Compose
```bash
docker compose up -d
```
> **Важно:**
> Убедитесь, что Docker Engine запущен и порты 5432/5433, 9092, 8081 свободны.
### 3. Проверьте статус сервисов
```bash
docker compose ps
```
---
## Проверка работы
### 1. Получить заказ через HTTP API
```bash
curl -X GET http://localhost:8081/order/
```
_Подставьте реальный order_uid из предыдущего шага._
### 2. Проверить обработку несуществующего заказа
```bash
curl -X GET http://localhost:8081/order/does-not-exist
```
### 3. Перезапустить сервис и убедиться, что кеш восстанавливается
```bash
docker compose restart order-service
curl -X GET http://localhost:8081/order/
```
### 4. Открыть веб-интерфейс
Перейдите в браузере по адресу:
[http://localhost:8081](http://localhost:8081)
---
## Структура проекта
- `cmd/` — точка входа приложения и продюсера
- `internal/model/` — модели данных
- `internal/repository/` — работа с БД
- `internal/delivery/` — HTTP и Kafka обработчики
- `migrations/` — SQL-миграции для создания таблиц
- `Dockerfile`, `docker-compose.yml` — инфраструктура
---
## Остановка и очистка
```bash
docker compose down -v
```
---
## Примечания
- Для работы требуется установленный Docker Desktop.
- Все переменные окружения уже прописаны в docker-compose.yml.
- Для тестирования Kafka используется встроенный продюсер (`order-producer`).
---