vk-callback-rs - многопоточный callback-сервер для ВКонтакте на базе actix-web и перемещающий события в поток redis (redis streams).
Приложение имеет два вида потоков - потоки actix'а и обработчики. Потоки actix-web предназначены для базовой валидации данных и их помещения в отдельную очередь, откуда их берут обработчики и передают в поток redis. При большом количестве сообщений и малом количестве обработчиков передача сообщений может осуществляться с задержкой.
Сами сообщения хранятся в формате message - событие ВКонтакте строкой. Таким образом, десериализация данных в JSON лежит на клиенте, осуществляющем чтение.
- Вы можете ознакомиться с примером деплоя сервера здесь.
- На Docker hub есть собранный образ сервера.
- По умолчанию сервер ищет конфиг в папке, в которой находится
- У сервера есть URI /health, по которому он отдает строку "ok" для примитивных healthcheck-проверок
Пример конфига расположен в папке deployment
Переменная | Описание |
---|---|
server_ip | Обрабатываемый сервером адрес (0.0.0.0 - все подключения) |
server_port | Порт, на котором сервер будет работать |
log_level | Уровень логирования |
workers_amount | Количество потоков actix |
handlers_amount | Количество обработчиков |
redis_connections | Количество соединений с redis в пуле подключений |
redis_url | URL подключения к redis |
group_id | Айди группы |
confirmation | Ключ подтверждения |
secret | Секретный ключ |
stream_name | Название потока, куда сервер будет передавать сообщения |
stream_length | Ограничение длины стрима |
Также, вы можете установить переменную конфигурации через виртуальное окружение, для этого сделайте запись в секции [env_mapping].
Например, при строке
log_level="LOG_LEVEL"
Сервер в первую очередь проверит переменную окружения под именем "LOG_LEVEL" и если ее не окажется он возьмет переменную из конфига.
- Кастомный путь к файлу конфигурации
- Автоматическое получениe group_id, confirmation
- Возможность обработки без secret
- Возможность отключения пропуска повторных сообщений