Задать вопрос
@giigro

Паттерн request-response в JMS-брокерах — зачем timeout?

Привет всем. Как мы знаем, брокеры сообщений, основанные на JMS, позволяют интегрировать через паттерн "запрос-ответ". При этом на продюсере указывается создается временная обратная очередь, указывается в параметре replyTo, а также correlationId. На ответ консьюмера есть дефолтный таймаут, сколько-то секунд, в разных брокерах разный. Вопрос зачем он нужен, если асинхрон, отвечающий по таймауту - это не что иное, как синхрон.
Есть догадка, что в ответная очередь нужна только для отправки "ок, принял", а реальный payload отправляется в обратной, не-временной очереди. Я прав?
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Merion Academy
    RabbitMQ для разработчиков и DevOps
    4 месяца
    Далее
  • OTUS
    RabbitMQ для разработчиков и администраторов
    3 месяца
    Далее
  • Учебный центр IBS
    JVA-059 RabbitMQ для разработчиков
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
Нет, вы не правы. И вообще непонятно почему вы сделали такой вывод.
Паттерн request-response по определению синхронный, да — отправляющий запрос ждёт ответа. Поэтому в нём и нужен таймаут.
Но можно и сказать, что это не синхронный код, потому что он может быть и неблокирующим и производить какую-то работу.
Т.е. часть, работающая с возвращаемыми данными по своей сути синхронен, но в контексте всего приложения эта операция асинхронна.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы