0

Теперь я думаю об использовании очереди сообщений для проекта «видео».Очередь сообщений - архитектура (задача + ответ)

Создание видеосервиса, в котором пользователи загружают видеоролики, а затем скриншоты, короткие видеоролики и разные размеры видео создаются с помощью скриптов (это не важно, как в momemnt). Во всяком случае, самое важное, о чем нужно подумать, это связь между интерфейсом (серверами веб-загрузки) и серверными серверами (серверами обработки видео).

Так proccess может быть:

  1. Пользователь приходит на сайт
  2. Пользователь загружает новое видео
  3. Загрузить скрипт добавить новое сообщение в очереди сообщений (Эй, есть новое видео, процесс его)
  4. В этом состоянии пользователь может увидеть видео в списке своих видео с «Загруженным» статусом

Это та часть, которую я не навязываю. lly знаю, как это сделать.

  1. Потребитель получает сообщение из очереди сообщений и начинает работать над ним.
  2. Потребитель обнаруживает, что это видео - если теперь он не сработает
  3. Потребитель делает скриншоты (занимает много времени), и потребитель будет информировать веб-сайт о том, что скриншоты были сделаны (??? How ??? - Я поместил новое сообщение в очередь сообщений?)
  4. Потребитель делает изменение размера видео (требуется много времени) - тот же вопрос снова - как потребитель проинформирует веб-сайт, что изменение размера видео сделано?

Итак, вопрос заключается в том, как обрабатывать сообщения с серверных серверов. Я предполагаю, что потребитель поместит другое сообщение в очередь журналов, а другой веб-потребитель обработает их и обновит базу данных. Это правильно?

ответ

2

Просто создайте две очереди: одну для заданий, вторую для ответов.

Процесс:

  • ПОЛЬЗОВАТЕЛЯ -> рабочей очереди -> Рабочий (ы)
  • работника (ов) -> очереди сообщений -> USER

Потребитель второй может быть все - процесс, который записывает результат в базу данных или, например, - сервер WebSocket, который немедленно отправляет уведомление.