Брокер сообщений RabbitMQ | Tutorial для начинающих | Урок 5 | Direct Exchange | .Net C#

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 พ.ย. 2024

ความคิดเห็น • 40

  • @ilyha1801
    @ilyha1801 8 หลายเดือนก่อน +1

    Очень крутой контент! Спасибо за проделанную работу!
    За примеры на C# вообще отдельная благодарность!

  • @svetlanastetsuro8359
    @svetlanastetsuro8359 3 ปีที่แล้ว +19

    Отличные видео по RabbitMQ! Спасибо!
    Доку читать дело полезное, но объяснения от опытного пользователя брокера - бесценны)

  • @Георгий-ь6с
    @Георгий-ь6с ปีที่แล้ว +1

    Очень понятное объяснение и особенно анимации, мы примерно, так логику себе и представляем, но тут это хорошо визуализированно. Спасибо

  • @СофьяХристенко-щ4ы
    @СофьяХристенко-щ4ы 3 ปีที่แล้ว +5

    Спасибо! Пришлось читать все на английском и разбираться. Жаль, что раньше не нашла этот канал

  • @selfcreator8921
    @selfcreator8921 ปีที่แล้ว

    Объяснения, примеры, анимации и сама структура этого и остальных видео дают четкое понимание темы
    Мне кажется посмотрев ваши видео нужно очень сильно постараться, чтоб не разобраться в данном направлении

  • @Sergio-jg4pr
    @Sergio-jg4pr 3 ปีที่แล้ว +7

    Дякую, дуже круто❤️❤️❤️

  • @makbell
    @makbell 3 ปีที่แล้ว +3

    Прям так вовремя... Спасибо! :D
    Вот только недавно началась практика по этой теме

  • @Mr43046721
    @Mr43046721 6 หลายเดือนก่อน

    Все мега понятно, спасибо!

  • @СтаниславДеркач
    @СтаниславДеркач 3 ปีที่แล้ว

    Спасибо за понятный материал

  • @sammygun84
    @sammygun84 7 หลายเดือนก่อน

    Привет, спасибо за уроки !
    А как могу как администратор узнать ip publisher?

  • @Alex888mount
    @Alex888mount 3 ปีที่แล้ว

    Отличное объяснение!

  • @dmitriysoldatenko1812
    @dmitriysoldatenko1812 ปีที่แล้ว

    Спасибо!

  • @shermukhammadshirinov3975
    @shermukhammadshirinov3975 ปีที่แล้ว

    👍👍👍

  • @Andrzej3935
    @Andrzej3935 11 หลายเดือนก่อน

    Спасибо

  • @shkippitor1895
    @shkippitor1895 3 ปีที่แล้ว

    красавчик) всё круто

  • @orhanaliyev9774
    @orhanaliyev9774 2 หลายเดือนก่อน

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

  • @wptest13
    @wptest13 ปีที่แล้ว

    Я не очень понял, как exchange знает что надо сообщение отправить по сути в две очереди (как пример error и all)?
    Или тут в примере указано что шлем сообщения по ключу, потом их кто-то (а их может быть бесконечногое количетсво) приходит и забирает, а когда у очереди нет подключенных consumer то очередь умирает вместе с сообщениями?

    • @DevStoriesAndTutorials
      @DevStoriesAndTutorials  ปีที่แล้ว +1

      дада, всё верно
      шлём сообщенеи по ключу
      по поводу "Я не очень понял, как exchange знает..." - обменник имеет привязку (binding), посмотрите ещё раз с таймлайна 6:40

    • @wptest13
      @wptest13 ปีที่แล้ว

      @@DevStoriesAndTutorials отдельно спасибо за тайминг, теперь понятнее

  • @sindersinder6457
    @sindersinder6457 2 ปีที่แล้ว

    при вызове QueueDeclare без указания имени у нас автоматически создается какая то очередь что ли? с каким то дефолтным названием?

    • @DevStoriesAndTutorials
      @DevStoriesAndTutorials  2 ปีที่แล้ว

      Да, создается очередь с параметрами по умолчанию. Имя очереди сгенерирует для нас сервер.

    • @sindersinder6457
      @sindersinder6457 2 ปีที่แล้ว

      @@DevStoriesAndTutorials спасибо, можно еще пару вопросов: 1. Когда мы объявляем консьюмер мы обязательно должны ему через модель указать с какими именно exchange мы работаем и с какими очередями, я правильно понимаю?
      2. Создал exchange с типом fanout, создаю очередь и привязываю ее к нему, отправляю в него сообщение без указания routingKey, сообщение попадает в эту очередь, но почему то не попадает в EventingBasicConsumer..
      спасибо!

    • @DevStoriesAndTutorials
      @DevStoriesAndTutorials  2 ปีที่แล้ว +2

      Да, когда объявляется Consumer - мы должны ему сказать, какую очередь он будет "слушать".
      Касаемо объявления очереди, а тем более обменника - такого нет в реальном мире. Consumer обычно ничего не знает о существовании Excange. Очередь он обычно так же не создаёт, а только получает её имя из переменных окружения. К моменту разработки функционала Consumera все остальные участники системы уже созданы и настроены (я про Exchange и Queue). В реальном приложении, если Consumer не смог подключиться к очереди, одним из правильных решений будет бросить Exception с сообщением о том, что не удалось связаться с очередью.
      В данном примере я делаю оговорку о том, что мы точно не знаем, какое приложение сейчас стартанёт первым, для этого создаём и обменник, и очереди внутри Consumer'a. Иначе будет падать через раз)

    • @sindersinder6457
      @sindersinder6457 2 ปีที่แล้ว +1

      @@DevStoriesAndTutorials спасибо за развернутый ответ, обнаружил интересную особенность, если мы в consumer объявляем очередь через QueueDeclare (или несколько очередей подряд), то при вызове model.BasicConsume можем не указывать очередь, а просто передать пустую строку, возмется последняя объявленная. А вот если не объявляем очередь и передаем пустую строку в BasicConsume тут уже возникает исключение. Интересно, методы получается асинхронные и ни как не блокируют основой поток, а если необходимо подписаться на успех отправки или получения? Типа как observable.send().subscribe(() => { ... });