Skip to content

Repository files navigation

Проект микросервисной системы Exonix

Данный проект, хоть и небольшой по объёму, сфокусирован не на функциональных возможностях, а на реализации и проработке нефункциональных требований для микросервисной архитектуры. Цель проекта — учитывать, как современные подходы и инструменты обеспечивают надёжность, масштабируемость и поддерживаемость системы и применить их.

Основные аспекты проекта:

  1. Автоматизация сборки и контейнеризация
    Проект использует современные средства автоматизации (Maven) и контейнеризации (Docker), что позволяет упростить развертывание и изоляцию сервисов.

  2. Отказоустойчивость между сервисами
    Реализованы ключевые шаблоны отказоустойчивости с помощью библиотеки Resilience4j, включая:

    • Circuit Breaker (размыкатель цепи)
    • Fallback (резервные сценарии)
    • Bulkhead (изоляция ресурсов между потоками)

    Это позволяет повысить устойчивость системы к сбоям и ошибкам отдельных компонентов.

  3. Аутентификация и авторизация между сервисами
    Настроены механизмы безопасности для взаимодействия микросервисов, что важно для защиты данных и предотвращения несанкционированного доступа.

  4. Масштабируемость и гибкость настройки сервисов
    Сервисы подготовлены к горизонтальному масштабированию:

    • Используется Config Server для централизованного управления конфигурацией
    • Реализовано Service Discovery для автоматического обнаружения и взаимодействия между микросервисами
  5. Чистота кода и структура проекта
    Соблюдаются принципы чистого кода:

    • Разделение слоёв
    • Стандартизированная структура пакетов
    • Единый подход к именованию и архитектурной организации компонентов

О проекте

В качестве практической реализации выбрана система управления лицензиями, разработанная для вымышленной компании Exonix.
Система состоит из двух микросервисов, которые обмениваются данными между собой и взаимодействуют с базой данных.

Функциональные требования

Функциональная часть проекта предельно проста и ограничивается стандартными CRUD-операциями, что позволяет сосредоточиться на отработке нефункциональных аспектов.

About

Микросервисный проект с упором на отказоустойчивость, масштабируемость и безопасность.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages