Как распространить исключение на микросервис, управляемый событиями / очередью сообщений? - PullRequest
1 голос
/ 05 июня 2019

При вызове HTTP между микросервисами очень просто распространять исключение на вызывающую / клиентскую часть.

Но как распространить исключение в микросервисе, управляемом событиями / в очереди сообщений (т. Е. RabbitMQ), на вызывающий / внешний интерфейс?

1 Ответ

0 голосов
/ 16 июня 2019

Я бы порекомендовал Cadence Workflow , который является гораздо более мощным решением для оркестровки микросервисов и обеспечивает распространение обработки исключений при длительных операциях из коробки.

Он предлагает множество других преимуществ по сравнению с использованием очередей для вашего варианта использования.

  • Построен экспоненциальный повтор с неограниченным интервалом истечения
  • Поддержка длительных операций сердцебиения
  • Возможность реализации сложных задачных зависимостей. Например, реализовать цепочку вызовов или логику компенсации в случае неисправимых сбоев ( SAGA )
  • Обеспечивает полную видимость текущего состояния обновления. Например, при использовании очередей все, что вы знаете, если в очереди есть несколько сообщений, и вам нужна дополнительная БД для отслеживания общего прогресса. С Cadence каждое событие записывается.
  • Возможность отмены обновления в полете.

См. презентацию , которая охватывает модель программирования Cadence.

...