процесса - http запрос, т.е шлюз отсылает месагу через IBus
затем (например, создал аккаунт в сервисе), мне нужно чтобы сервис отослал второму (нотификатору) сообщение, внутри DI сервиса (ну типо что вы зарегистрированы вот ваш логин и пароль)
есть 3 варианта - IBus, ISendEndpointProvider и ConsumeContext, первый используется для инициализации бизнес процесса, второй как я понимаю универсальный и третий в скоупе консьюмера (чтоб это все атомарно выглядело, полагаю)
с одной стороны отослать емайл - это тоже бизнес процесс, а значит стоит использовать IBus, с другой стороны можно использовать ISendEndpointProvider - может кто подсказать пожалуйста у кого какие практики были?
и второй вопрос - почему-то здесь очень странно работает дублежка сообщений во все очереди
масстранзит создает кучу обменников, где на обменник (рутовый) подписываются обменники сервисов
и чтобы 1 сообщение продублировать во все очереди надо очень люто колхозить (изменяя например название эндпоинта), хотя в rabbitMq это делается автоматически и проще - достаточно подписаться еще одной очередью на конкретный обменник типа fanout
кто-то сталкивался? по логике без этой хрени невозможно написание микросервисов
с этим кто-то сможет помочь или нужно на тостер идти?
Схему твоих сервисов не понял. Отправляй все через IBus, если у тебя зарегано все дефолтно, то он сам разберется, где находится. Что за дублежка сообщений? Ты про события? Если ты хочешь отправлять сообщение всем сервисам, то каждый сервис должен создать свою очередь.
вот с последним проблема - как ее в масстранзите создать? именно очередь, мне лишние обменники там не нужны то что он разберется это я знаю, тут речь из доков через rabbitmq management смотрел, щас найду скрины
А ты _bus.Publish используешь, отправляешь ивент, а консьюмеры у тебя не все получают его? Покажи как ты регаешь консьюмеры в разных сервисах.
один только получил и все
Обсуждают сегодня