Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Service Booking Microservices

Система микросервисов для управления бронированием услуг на Go с событийно-ориентированной архитектурой (Event-Driven) на базе Apache Kafka. Проект состоит из API Gateway и четырёх независимых сервисов (Auth, Booking, Catalog, Notifications & Audit), взаимодействующих между собой асинхронно через Kafka.

Стек технологий

  • Язык: Go 1.25 / 1.26
  • HTTP-фреймворк: Gin
  • База данных: PostgreSQL 17
  • ORM: GORM
  • Драйвер PostgreSQL: pgx/v5
  • Брокер сообщений: Apache Kafka 3.7.0 (KRaft, без ZooKeeper), клиент — segmentio/kafka-go
  • UI для Kafka: Kafka UI
  • Аутентификация: JWT (golang-jwt/jwt)
  • Валидация: go-playground/validator
  • Конфигурация: godotenv (.env)
  • Контейнеризация: Docker, Docker Compose
  • Архитектура: микросервисы, API Gateway, Event-Driven (Kafka)

Архитектура

┌──────────────────────────────────────────────────────────────────┐
│                          API Gateway                             │
│                       (Port 8080)                                │
│  - JWT Validation & Token Processing                             │
│  - Reverse Proxy для микросервисов                               │
│  - Injection of X-User-ID и X-User-Role headers                  │
└────┬────────────┬──────────────┬──────────────┬──────────────────┘
     │            │              │              │
     ▼            ▼              ▼              ▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐
│   Auth   │ │ Booking  │ │ Catalog  │ │ Notifications &  │
│ Service  │ │ Service  │ │ Service  │ │    Audit Service │
│ :8081    │ │ :8082    │ │ :8083    │ │      :8084       │
└────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘
     │            │            │                │
     └────────────┴────────────┴────────────────┘
              │
    ┌─────────▼──────────────┐
    │  Apache Kafka 3.7.0    │
    │   (Message Broker)     │
    │    Port 9092           │
    │                        │
    │ Topics:                │
    │ • users.events         │
    │ • bookings.events      │
    │ • catalog.events       │
    └────────┬───────────────┘
             │
    ┌────────┴──────────┐
    ▼                   ▼
┌─────────────┐   ┌──────────────────┐
│ PostgreSQL  │   │ PostgreSQL       │
│  :5433      │   │ :5434            │
│ (Auth DB)   │   │(Notifications DB)│
└─────────────┘   └──────────────────┘

Kafka UI: http://localhost:8090

Установка и запуск

Требуется установленный Docker и Docker Compose.

git clone https://github.com/Lastdabridge/Service-Booking-Microservices.git
cd Service-Booking-Microservices
docker-compose up --build

После запуска будут доступны:

Сервис Адрес
API Gateway http://localhost:8080
Auth Service http://localhost:8081
Booking Service http://localhost:8082
Catalog Service http://localhost:8083
Notifications & Audit Service http://localhost:8084
Kafka UI http://localhost:8090

Не забудьте создать .env-файлы для каждого сервиса (по образцу переменных, используемых в docker-compose.yml), если они ещё не настроены.


Участники разработки

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages