Об этом проекте
QPub Server — это самостоятельно размещаемый сервер обмена сообщениями, который сочетает каналы pub/sub в реальном времени с очередями заданий, предоставляя доступ через REST и WebSocket интерфейсы. Он предназначен для команд, которые хотят запускать собственную инфраструктуру обмена сообщениями, а не зависеть от хостингового сервиса.
Основные возможности
- Каналы: обмен сообщениями по модели publish/subscribe, доставляемый через WebSocket, с возможностью публикации через REST.
- Очереди заданий: постановка в очередь и извлечение рабочих элементов, запуск воркеров и получение вебхуков.
- Мультитенантность: тенанты изолированы друг от друга и могут иметь применяемые ограничения скорости.
- Аутентификация: API-ключи и клиентские токены защищают доступ; отдельный контрольный токен защищает API подготовки.
- Control API: управление тенантами, API-ключами, лимитами, очередями и воркерами, а также просмотр статистики и подключений в реальном времени.
Бэкенд-сервисы
Сервер полагается на NATS JetStream, Redis и Postgres, при этом CockroachDB поддерживается как альтернативная база данных через настройку драйвера.
Начало работы
В README предлагается скопировать пример файла окружения и запустить Docker Compose, который поднимает Postgres вместе с Redis и NATS. Порты по умолчанию: 8091 для Control API, 8111 для REST и 8131 для WebSocket. Тенант и API-ключ должны быть созданы через Control API до выполнения вызовов REST или WebSocket. Также задокументирован путь локальной сборки с использованием инструментов Go, требующий доступности тех же бэкенд-сервисов через конфигурацию окружения.
Control API аутентифицируется с помощью bearer-токена или пользовательского заголовка; если токен оставлен пустым, Control API открыт, что в README отмечено как предназначенное только для локальной разработки. Задокументированные конечные точки охватывают проверки здоровья, идентичность и метрики экземпляра, создание, перечисление, получение и удаление тенантов, статистику по тенантам, подключения, каналы, ограничения скорости, API-ключи, очереди и воркеры.
Проект лицензирован под Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.