Skip to content

Отказоустойчивый распределенный менеджер очередей сообщений с приоритетами

License

Notifications You must be signed in to change notification settings

ashenBlade/TaskFlux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ae5cb48 · May 12, 2024
May 12, 2024
May 12, 2024
May 12, 2024
May 12, 2024
May 12, 2024
May 9, 2024
Feb 9, 2024
May 12, 2024
May 12, 2024
May 12, 2024
May 12, 2024
May 11, 2024

Repository files navigation

Лого

TaskFlux - это распределенный менеджер приоритетных очередей, построенный с упором в отказоустойчивость.

Что такое TaskFlux

TaskFlux - менеджер приоритетных очередей. Как обычный менеджер очередей, только каждое сообщение имеет свой приоритет.

Создан с упором на отказоустойчивость и работу в контейнерах.

За счет своей расширяемости может использоваться в самых различных приложениях.

Функциональность

Функциональность приложения:

  1. Чтение сообщений в зависимости от приоритета
  2. Динамическое создание и удаление очередей
  3. Выбор реализации приоритетной очереди
  4. Ограничения на операции с очередью (см. политики очередей)
  5. Чтение с ожиданием
  6. Механизм подтверждений

Что еще полезно:

  1. Запуск в кластере
  2. Возможность конфигурирования различных аспектов поведения
  3. Метрики в формате Prometheus
  4. Множество интерфейсов взаимодействия клиентов

Документация

Ознакомиться с функциональностью можно на страницах:

Документация, касательно использования:

Для разработчиков (и кому интересно покопаться):

Взаимодействие

Приложение поддерживает несколько интерфейсов взаимодействия:

HTTP

Можно взаимодействовать по HTTP протоколу. Для этого имеется специальный REST интерфейс.

Бинарный протокол

У приложения имеется собственный клиент-серверный протокол, построенный поверх TCP. Его работа описана на этой странице документации.

На данный момент существует реализация для языка C#. Пример использования в проекте интерактивного клиента. Сама библиотека расположена в проекте TaskFlux.Transport.Tcp.Client (пока не опубликована в NuGet).

gRPC

Имеется поддержка gRPC протокола. Сервис описан в этом proto-файле.

Начало работы

Чтобы попробовать проект:

  1. Склонируй git репозиторий проекта

    git clone https://github.com/ashenBlade/TaskFlux.git
    cd TaskFlux
  2. Запусти docker-compose в корне репозитория

    docker compose -f docker-compose.yaml up -d

    Готово! Сервер запущен.

  3. Для тестирования можно запустить консольный клиент

    dotnet run --project samples/InteractiveConsole localhost:9000

О более подробных инструкциях в документации: установка, конфигурация

Вложиться в проект

Разработка ведется в ветках feature. В ветке master расположен готовый к работе код.

Если есть предложения по функциональности - создай новый Issue

Лицензия

Проект опубликован под лицензией Apache 2.0. Больше о лицензии в LICENCE

About

Отказоустойчивый распределенный менеджер очередей сообщений с приоритетами

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published