Практические примеры того, как correlation id используется в обмене сообщениями?

может ли кто-нибудь дать мне примеры того, как в производстве может использоваться идентификатор корреляции?

Я прочитал, что он используется в сообщениях типа запроса / ответа, но я не понимаю, где я бы его использовал?

один пример (который может быть неправильным) я могу думать, что в сценарии подписки на публикацию, где у меня может быть 5 подписчиков, и если я получу 5 ответов с тем же идентификатором корреляции, я могу сказать, что все мои подписчики получили его. Не уверен, что это будет правильное использование он.

или если я отправлю простое сообщение, я могу использовать корреляцию, чтобы гарантировать, что клиент получил его.

другие примеры?

2 ответов


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

приходит запрос, сообщение, описывающее задачу, помещается в очередь сервером интерфейса. После этого интерфейсный сервер блокирует ожидание ответного сообщения с тем же идентификатором корреляции. Пул рабочих машин прослушивает очередь, и один из них берет задачу, выполняет ее и возвращает результат как сообщение. Как только приходит сообщение с правильным идентификатором корреляции, frontend server продолжает возвращать ответ вызывающему.


в контексте CQRS и EventSourcing идентификатор корреляции командного сообщения, скорее всего, будет сохранен вместе с соответствующими событиями из домена. Эта информация позже может быть использована для формирования аудит.