Практические примеры того, как correlation id используется в обмене сообщениями?
может ли кто-нибудь дать мне примеры того, как в производстве может использоваться идентификатор корреляции?
Я прочитал, что он используется в сообщениях типа запроса / ответа, но я не понимаю, где я бы его использовал?
один пример (который может быть неправильным) я могу думать, что в сценарии подписки на публикацию, где у меня может быть 5 подписчиков, и если я получу 5 ответов с тем же идентификатором корреляции, я могу сказать, что все мои подписчики получили его. Не уверен, что это будет правильное использование он.
или если я отправлю простое сообщение, я могу использовать корреляцию, чтобы гарантировать, что клиент получил его.
другие примеры?
2 ответов
веб-приложение, которое предоставляет HTTP API для аутсайдеров для выполнения задачи обработки, и вы хотите дать результаты для вызывающего абонента в качестве ответа на HTTP-запрос, который они сделали.
приходит запрос, сообщение, описывающее задачу, помещается в очередь сервером интерфейса. После этого интерфейсный сервер блокирует ожидание ответного сообщения с тем же идентификатором корреляции. Пул рабочих машин прослушивает очередь, и один из них берет задачу, выполняет ее и возвращает результат как сообщение. Как только приходит сообщение с правильным идентификатором корреляции, frontend server продолжает возвращать ответ вызывающему.
в контексте CQRS и EventSourcing идентификатор корреляции командного сообщения, скорее всего, будет сохранен вместе с соответствующими событиями из домена. Эта информация позже может быть использована для формирования аудит.