Skip to content

Sly-al/NatsStream_Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NatsStream_Service

Задача

Задача проекта состоит в развертывании локального сервера PostgreSQL создании базы данных и настройке пользователя. Также требуется создать таблицы для хранения полученных данных.

Сервис

Сервис представляет собой подключение и подписку на канал в Nats Streaming Server. Полученные данные записываются в базу данных PostgreSQL и сохраняются в памяти сервиса в виде кэша. В случае аварийного завершения работы сервиса, кэш восстанавливается из базы данных. Также необходимо развернуть HTTP-сервер, который будет предоставлять данные по их идентификатору из кэша. Требуется создать простой интерфейс отображения полученных данных для возможности запроса по идентификатору.

Описание компонент

Producer

Компонент Producer отвечает за публикацию данных в Nats Streaming Server. Фактически, он выполняет функции стороннего сервиса, который отправляет заказы в формате JSON.

Subscriber

Компонент Subscriber обрабатывает данные, полученные из Nats Streaming Server, и добавляет их в базу данных, а также сохраняет их в памяти в виде кэша. По запросу он может отправлять заказы в пользовательский интерфейс.

Internal

Cache

Пакет Cache отвечает за реализацию кэша и хранение данных в памяти сервиса.

Config

Пакет Config отвечает за загрузку конфигурации для Producer и Consumer.

Model

Пакет Model содержит структуру заказа.

Storage

Пакет Storage отвечает за работу с базой данных.

Template

Пакет Template содержит HTML-страницу для отображения полученных данных.

Особенности работы

  • Producer и Subscriber работают независимо друг от друга. Если Subscriber остановился по какой-то причине, а Producer в это время отправил новые данные в Nats Streaming Server, Subscriber все равно получит эти данные при запуске.
  • Если Subscriber прекратил работу, то при следующем запуске он загрузит ранее полученные данные в кэш из базы данных.
  • Nats Streaming Server и Postgres поднимаются локально в докере при помощи команды docker compose up, после чего уже запускаются producer и subcriber

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published