RabbitMQ Crash Course

Поделиться
HTML-код
  • Опубликовано: 25 дек 2024

Комментарии • 246

  • @hnasr
    @hnasr  4 года назад +37

    TOC - RabbitMQ Components 2:00
    Spin up docker RabbitMQ container 8:30
    Write a Publisher client NodeJs 11:00
    Write a consumer client NodeJs 20:30
    My thoughts on RabbitMQ 33:50

  • @r7butler
    @r7butler 4 года назад +171

    People comment not liking Hussein's voiceover or talking style, but in my personal opinion, it keeps me awake so it's a good thing

    • @魔君在放克
      @魔君在放克 4 года назад +3

      I speed up the play by x1.75, his tone gone.. so I can concentrate on what he is saying

    • @ibraheemkhaleel9607
      @ibraheemkhaleel9607 4 года назад +1

      Cant agree more

    • @user-zf4nq1dy2n
      @user-zf4nq1dy2n 3 года назад +3

      Yeah, just stopped and tried to find another video just because of this "talking style"( It's a shame, the content is good

    • @allenhe9000
      @allenhe9000 3 года назад +2

      I prefer this style compared to the others.

    • @metalalive2006
      @metalalive2006 3 года назад

      I'd say most of his videos provide insights and good quality of technical detail , it would be much better if he can keep long story short , majority of people (maybe engineers also) nowadays just lose patience when they feel that they cannot finish watching / reading such video in a short while (maybe few minutes, less than half an hour)

  • @rafiramadhana2352
    @rafiramadhana2352 4 года назад +38

    What I like from most of your videos is that sometimes you also talk about lower OSI layers, peeling up the abstraction. It is cool, different, and solid. Thanks for developing this channel.

    • @hnasr
      @hnasr  4 года назад +6

      Rafi Ramadhana thanks Rafi! Appreciate the feedback 😊

  • @ryanr9193
    @ryanr9193 3 года назад +6

    I'm only halfway through and this is already the most valuable RabbitMq tutorial I've seen thus far.

  • @micooldra
    @micooldra 5 лет назад +91

    You're hilarious dude, and thanks for making my life a little easier!

  • @Xlaudiuz
    @Xlaudiuz 4 года назад +5

    Before i came to this video i knew NOTHING of RabbitMQ, and after just the introduction i got a pretty good understatement of the basic functionalities, thank you for translating this to human language!

  • @roman_mf
    @roman_mf Год назад +4

    Man, I just love the way how you explain things. Your RUclips channel is a gem!

  • @mykolatokariev8260
    @mykolatokariev8260 10 месяцев назад

    I like that you explain it slow and with passion, not like the most of youtube videos "RabbitMQ in 5 seconds"...

  • @Ad9911io
    @Ad9911io 2 года назад +2

    My team lead told me to learn Rabbitmq for a future project. As a Junior dev I got freaked out, but now after this video it doesn't seems too much complicated, ofcouse i haven't dived deeper yet, but still the basic was pretty fine.
    Thank you!
    Btw love your talking style, very refreshing and not boring at all!

  • @rezaamya6444
    @rezaamya6444 Год назад +2

    It's late to write "Kafka", but it was great, and thank you for this great video.
    Please keep updating :)

  • @ГринькоДмитрий
    @ГринькоДмитрий Год назад

    I`ve found this channel just couple days ago. VEry gib respect to author. Very clear, a bit humorous. And of top of that, just go throw list of videos. He covers a great topics. Thank you so much

  • @victorkarangwa2378
    @victorkarangwa2378 4 года назад +3

    Thank you so much, Hussein.
    I like your speaking style. It made me active on this tutorial until the end.

    • @hnasr
      @hnasr  4 года назад

      Thanks Victor

  • @farhatshahir342
    @farhatshahir342 4 года назад

    Every minute of explanation is just making me speechless. Lots of love for you!!!

    • @hnasr
      @hnasr  4 года назад +1

      Wow, thank you!

    • @farhatshahir342
      @farhatshahir342 4 года назад

      @@hnasr you are more than welcome

  • @adriancor1344
    @adriancor1344 4 года назад +1

    I was listening the whole video in background while I was doing other work stuff, when I'm done at work I have to Watch the video, it sounded very interesting .

  • @OSCAR-CH
    @OSCAR-CH 3 года назад +1

    I learned rabbitmq with this video. I loved the passion this man inspires on each video

  • @Mystterriks
    @Mystterriks 4 года назад +5

    You explaining things in an awesome manner! Love it!

  • @tedd1172
    @tedd1172 4 года назад

    God... Watched 10 videos continuously...best channel for backend Guyz...Keep posting..:)

    • @hnasr
      @hnasr  4 года назад +1

      Thank you so much 😀 enjoy!

  • @timuryalta
    @timuryalta 4 года назад +9

    Genuinely best rmq tutorial on youtube

  • @mayrarincones8427
    @mayrarincones8427 10 месяцев назад

    Thank you so much for this video!! I'm preparing for an interview tomorrow and this was so helpful! Now I'm going to search for the kafka video 😄

  • @GamerzFavourite
    @GamerzFavourite 4 года назад +3

    superb men, now I can teach my old fashioned office guys this tech. HAHAHA.. I am gonna rockkkkkk... Thanks..

  • @sujeetbadnale9441
    @sujeetbadnale9441 5 месяцев назад

    God Bless You Brother. You teach very nice. Please be blessed and blessing for others. Love you brother😇

  • @umittas20000
    @umittas20000 2 года назад

    Hey Hussein. Your explanation is very nice and also your text readability is just perfect on screen. Thank you for sharing. Great job!

  • @hearyourmood9633
    @hearyourmood9633 3 года назад

    very interesting videos, hilarious teaching style, feel like watching a good movie. 0% boring

  • @zobaidulkaziex
    @zobaidulkaziex 8 месяцев назад

    Very nice discussion I was looking for a long time I am very glad to find one like this and I see all of it

  • @sakuranasty
    @sakuranasty 3 года назад

    It's true, I can't approach rmq along with celery, because I just can't make connections in my head because of all the terms, and if you also mention details for each term your head is going to explode ) thanks for the video)

  • @meshaelshahid7082
    @meshaelshahid7082 3 года назад +1

    My concepts went from 0 to 100. Thanks man

  • @rightangleoverseas2391
    @rightangleoverseas2391 3 года назад

    Hussein, you have real, real goddamn value in your videos. I am so thankful for the knowledge you're imparting !

  • @juancarlosgonzalez9722
    @juancarlosgonzalez9722 4 года назад +1

    Good, simple, straightforward explanation with easily replicable example. Thank you.

    • @hnasr
      @hnasr  4 года назад +1

      Juan Carlos González thanks Juan Carlos! Appreciate it 🙏

  • @Daniel-to5jd
    @Daniel-to5jd 3 года назад

    This is the best video about rabbitmq that I have seen so far, you know how to explain it well! Thank you, I subscribe

  • @s.ahmadparkhid3057
    @s.ahmadparkhid3057 2 года назад +2

    This course is amazing... I'll CONSUUUUUUUUUME it.

  • @abishekbaiju1705
    @abishekbaiju1705 Год назад

    Its very hard to find good rabbitmq crash courses. Thanks for making the video Hussein,

  • @lovefamilychildrenhappines9330
    @lovefamilychildrenhappines9330 4 года назад +1

    I am glad you used Node for the demo session. While all languages have their pluses and minuses, at least with Node, you picked a universal language in JavaScript that developers in all industries can relate to.

  • @venkateswaran8752
    @venkateswaran8752 4 года назад +1

    past two weeks onwards watching your awesome videos the phrase "let's jump into guys" was always running in mind Hussein

  • @danuzonez
    @danuzonez 5 лет назад +6

    Very nicely explained. I love your videos.

    • @hnasr
      @hnasr  5 лет назад +1

      Atif Ali thanks Atif!

  • @govindasgarden
    @govindasgarden 4 года назад +5

    Found your channel today and subscribed. Much love! I really like your style and am looking forward to watching your other videos.

    • @hnasr
      @hnasr  4 года назад

      Thanks Lee appreciate your message! Enjoy the content and let me know what should I talk about next

  • @MT87840
    @MT87840 10 месяцев назад

    It was such a great video, Hussein.
    Please make more videos on backend stuff.

  • @lucyshen0222
    @lucyshen0222 5 лет назад +1

    Very nice to see an example using async and await.

  • @frangalarza
    @frangalarza 3 года назад

    2 minutes into the video and I already love your style!

  • @ahmetcolak4839
    @ahmetcolak4839 2 года назад +1

    Hey, you have real clear style of teaching, appretiate that. But I am afread I cannot imagine a crash course about RabbitMQ without explaining the exchanges, binding keys and queues.

  • @Thithe_dev
    @Thithe_dev Год назад

    You're have awesome energy, Man. Great Content!

  • @moeruishi
    @moeruishi 2 года назад

    This just helped me understand the architecture of a codebase I’m to work on. Thanks a lot! Awesome content

  • @ameyabapat9090
    @ameyabapat9090 2 года назад

    GREAT enthusiastic explanations !!! Plz do Kafka. Also video on pros and cons of different queuing systems and when to use which.

  • @zebcode
    @zebcode 4 года назад +1

    Your presenting style is awesome.

    • @hnasr
      @hnasr  4 года назад

      Appreciate you Kiran. Thanks 🙏

  • @sravs7929
    @sravs7929 4 года назад

    Your style of explaining and content is dope💗..I will get sleep if pitch and tone is consistent for long time..ur videos at 2x is perfect for me..

  • @pheisar
    @pheisar 5 лет назад +2

    Thank you for this great content. Looking forward for the Kafka one. 👍

  • @scubadawg91
    @scubadawg91 4 года назад

    Excellent video! I really enjoy your enthusiasm for the topc.

    • @hnasr
      @hnasr  4 года назад +1

      scubadawg91 🙏 I appreciate that thanks 😊

  • @parasmaniseth7873
    @parasmaniseth7873 3 года назад +1

    WTF guys....who is talking abt his bad accent n all
    Just remember one thing...he knows English language hence dats why we are able to get KT...otherwise this gem 💎 would not be accessible to wide audience

  • @FamilyGuySweden
    @FamilyGuySweden 4 года назад +1

    Great work Hussein! That was really helpful.

    • @hnasr
      @hnasr  4 года назад

      Glad I could help 😍

  • @mohamedshlibik6190
    @mohamedshlibik6190 3 года назад +1

    Thanks mate, your effort and style are great

  • @riteshksheersagar249
    @riteshksheersagar249 3 года назад

    Amazing video. Learnt a lot.
    You remind me a lot of Michael Scott from 'The Office'

  • @franciscocarneiro9242
    @franciscocarneiro9242 4 года назад +7

    Awesome video! Thanks for another great one Hussein!
    I recently discovered a really interesting stack of technologies called the TICK stack. Its four technologies so might be a little heavy for one or two videos, but I would love to hear your opinion on it and see you spin it up on docker and do some cool stuff with it!
    Cheers!

    • @hnasr
      @hnasr  4 года назад +1

      Francisco Carneiro thanks Francisco!! Will check out the TICK stack. First time I hear about it

  • @rajnishsagar7307
    @rajnishsagar7307 4 года назад +1

    Hey! you are great .. very nice explanation. this helped me to learn rabbitmq work flow. Thanks

    • @hnasr
      @hnasr  4 года назад +1

      I am happy I could help! Thanks for your message 😊

  • @Dylank1978
    @Dylank1978 2 года назад

    Dude you are super listenable..... thanks for this.

  • @anthonyfarias321
    @anthonyfarias321 5 лет назад +3

    This is great for start. It'd be great if you could extend this topic for a real life use case. I have read rabbitmq can be used for push notifications. How about a tutorial for that?

    • @hnasr
      @hnasr  5 лет назад +2

      Loved that idea thanks for the suggestion. RabbitMQ as We discussed supports push by default so it make sense to be used for push notifications.. but honestly I think redis is better and easier to implement for such use case just because of how complicated RabbitMQ is.. still good use case and would to consider making a comparison video.. thanks! Cheers

  • @hazlotumismo1419
    @hazlotumismo1419 4 года назад +3

    I tried to implement rabbitMQ for fast Performance Endpoint, I didn't find enough information to my errors, apache kafka worked much better...

  • @НиколайСладкий-н4к
    @НиколайСладкий-н4к 4 года назад

    What a great video, great channel and great guy called Hussein!!!)) Thank you sooooooo much for your work and videos, keep up the good!

  • @lianglaw6923
    @lianglaw6923 5 лет назад +1

    Ahaahhahaha, "it is very easy to install sir, npm install amqplib". Really fun, man. Keep going bro.

  • @sagartyagi2450
    @sagartyagi2450 3 года назад +1

    Here are few problems which one can find interesting:
    1. Whats if multiple consumers are connected to a single Queue, and only one of them acknowledges the message and due to some reason the other consumer failed and want to process the message again, how to do this?
    2. I can clearly see, very soon there will be a huge need to load balance this Pub Sub Queue model, being a stateful model is very tricky, how fo we tackle that?
    Thank hussain for a wonderful tutorial. Don't need your answers on this, just wanted to share my thoughts.

    • @hnasr
      @hnasr  3 года назад

      Good insights
      1) the message that is not acknowledged because of a failure won’t be removed from the queue so the next client that starts will pick that message again. All sorts of problems with that, did the message actually got processed but couldn’t acknowledge? Did the acknowledge message get lost? Look up the two general problem
      2) not sure about RabbitMQ (i think yes) but kafka does have distributed queue
      Glad you liked it!

  • @eduardomihalache8568
    @eduardomihalache8568 2 года назад +1

    Best practice says to not open a channel each time you are publishing, and keeping connection long-lived. There is a benefit of closing connection and channel on publisher?

  • @LawZist
    @LawZist 5 лет назад +1

    Hi Hussein, does rabbitMQ (and MQ in general) use the pub/sub pattern? can the consumer subscribes to the publisher and wait for a message without the need to actively consume them on its own?

    • @hnasr
      @hnasr  5 лет назад +3

      That is correct RabbitMQ as I explained in the video uses Pub/sub pattern. Where you have subscribers (consumers) connecting to a queue and a publisher publishing to a queue.
      As for your second part of your question RabbitMQ uses PUSH model where a consumer connects to a queue and any message published to the queue will be automatically PUSHED to the consumer/subscriber without the subscriber has to request actively it by itself. Kafka also uses pubsub pattern but they use different message delivery approach (not push) they use long polling..
      Im making a pubsub video that will be posted in the coming days.. stay tuned and keep these interesting questions coming
      Have a great weekend 😊

  • @faizanvanekar7882
    @faizanvanekar7882 4 года назад

    An Awesome Video !!. Can you also do an admin video for RabbitMQ ? Like how to manage the queues, how to republish a queue. How to republish a dead letter queue etc or if u already have it, kindly point me to it. Thanks a lot and your entire video is awesome and not boring at all. Keep up the good work of teaching others...👍

  • @pablohernandez4305
    @pablohernandez4305 3 года назад

    thanks for the video I will take a look at kafka before I start learning either of the 2.

  • @rahulkumarsingh1716
    @rahulkumarsingh1716 5 лет назад

    was looking for rabbitmq for long time. thanks :)

    • @hnasr
      @hnasr  5 лет назад

      Enjoy the course! 😊

  • @noclueguy
    @noclueguy 4 года назад

    Came here to understand rabbitmq and its exchanges
    7:39 Hussein: "you don't have to know about this, we're not gonna talk about exchanges"

    • @hnasr
      @hnasr  4 года назад

      Aleg Malinovsky 😅 sorry I do need to make another video about exchanges.

  • @TheMillw0rm
    @TheMillw0rm 4 года назад +4

    thanks Hussein you're doing great

  • @aseemmangla6649
    @aseemmangla6649 2 года назад

    I have a doubt regarding RabbitMQ installation. Either we can directly install RabbitMQ software manually or we can install it via docker.
    Which method we should use?

  • @cubfan23100
    @cubfan23100 5 лет назад +1

    Excellent tutorial. Best RabbitMQ video I have come across on the entire web. Well done and if you could do one for Kafka as well that would be great!

    • @hnasr
      @hnasr  5 лет назад +1

      Thanks Andrew! Kafka video is on the making, cheers

  • @aplotor
    @aplotor Год назад

    how do you have completions in vscode before installing the library?

  • @craigfreeman8225
    @craigfreeman8225 3 года назад

    Good video. Did feel like Elmo was talking to me though.

  • @chihabahmed5207
    @chihabahmed5207 3 года назад

    Can you do a video on Nats streaming, it can handle more messages than rabbitmq but does not hold messages in database. I am currently building a microservice app and I am using Nats but I am tempted to use rabbitmq and the only thing that make them difference is the ability to persist messages (if I am not wrong in regards to RabbitMQ) and also in Nats you can have multiple consumers listening to same queue (not sure with rabbit mq) and only one of them can process that message.
    This is very good when you have multiple replicas of server or multiple instance of servers and one of them can process the message.
    The down side to this is that, if the system is down (Nats streaming) then all messages are gone) other than that it can handle
    so you have to find a way to hold the un acked messages and push them from your db to nats to other services where it's appropriate.
    what's your input on this ?
    a video comparison on the two and their limitation would be a great idea brother Hussein.

  • @atexnik
    @atexnik 3 года назад

    When I hover over message, it doesn't show anything. How do you trigger opening that window in VSC?

  • @a_k__
    @a_k__ 3 года назад

    can you tell why QoS in MQTT is considered a feature of MQTT where http over TCP is checking for delivery as well?

  • @rogerthat_shorts
    @rogerthat_shorts 2 года назад

    Failed to establish message queue error...Any suggestions how to resolve.

  • @youee1234
    @youee1234 5 лет назад +1

    Thanks Hussein! you are a awesome ! and simlpe clear!

    • @hnasr
      @hnasr  5 лет назад +1

      Glad it is! let me know if there is anything I could do better or simplify or if there is a point I probably missed (which I probably have haha) Cheers! and stay awesome!

  • @coder7078
    @coder7078 Год назад

    Please make a video on how you study, just how mahn awesome ❤

  • @joshuagainey9669
    @joshuagainey9669 5 лет назад

    Outstanding, love the high quality videos!

    • @hnasr
      @hnasr  5 лет назад +1

      Joshua Gainey Thanks Josh! Enjoy the content 🙏

  • @georgesmith3022
    @georgesmith3022 4 года назад

    Hi Hussein. thanks for the very good video. However I don't understand where task Queues like Celery fit into this. Can you explain why we need Celery + rabbitmq?

  • @Dylank1978
    @Dylank1978 2 года назад

    Thanks

  • @viniciusalvess
    @viniciusalvess 3 года назад

    Great video Hussein, thank you!

  • @GB-mi5he
    @GB-mi5he 3 года назад

    You are a great teacher and you make me laugh

  • @andreygrant8676
    @andreygrant8676 2 года назад +1

    I disagree with your conclusion. First of all, the complexity you've described is actually inherent to decoupled, event-driven architectures. Pub/Subs and Push data transfers is a way of decoupling pieces of systems and reducing dependencies. Very common in anything where data sources (sensors/microservices/clients) can dynamically enter or leave and you'd like to ensure your system is somewhat robust.

  • @quequel5083
    @quequel5083 3 года назад

    This course is amazing... Thank you so much!!!!!

  • @elyu_vibes
    @elyu_vibes 4 года назад +1

    Very nice tutorial! This is really helpful to me. Would it be possible also to include header? For example the consumer expects the message to have a valid header authorization sent by the publisher (let's say a JWT token, Authorization: Bearer eyj-some-token)

  • @tdias25
    @tdias25 5 лет назад

    i just read this term this week and you made a video about it lol

    • @hnasr
      @hnasr  5 лет назад +1

      yes! new thing to learn thats what makes good software engineer! Enjoy

  • @steveh4595
    @steveh4595 5 лет назад +1

    I'd like to see you do a video on zeromq. It seems less complex to me.

    • @hnasr
      @hnasr  5 лет назад

      Good idea! Added to the list. Thanks Steve

  • @nithishkarthik9163
    @nithishkarthik9163 3 года назад

    how does rabbitmq acknowledge which consumer has received the message, does it maintain state for that?
    if 3 out of 10 consumers have not received it, does it remember that they have not received and maintains a state for that?

  • @vladimirgorea8714
    @vladimirgorea8714 3 года назад +1

    Loved the final thought on crazy abstractions. An engineering solution should extract complexity not make it worse.

  • @syednoor5213
    @syednoor5213 3 года назад

    Hi how to handle no channel available to process error .

  • @ruhnet
    @ruhnet 3 года назад

    Great video, fantastic example.

  • @rlustemberg
    @rlustemberg 4 года назад

    Great stuff Hussein! Any plans on doing a Redis Streams episode?

  • @islamabo0
    @islamabo0 4 года назад +1

    The number was "7" and not 7 because of the API of process.argv

    • @LionKimbro
      @LionKimbro 2 года назад

      Thanks for this. I was trying to figure out what was going on there. That makes it clear.

  • @ZzBiazZ
    @ZzBiazZ 5 лет назад +1

    Yes, I do want a kaffka tutorial, please do it :p, thank you so much ........

  • @vipulthakur7535
    @vipulthakur7535 3 года назад

    how to connect go with rabbitmq cluster , nginx reverse proxy does not work , could u do a video on that (:

  • @wassim5622
    @wassim5622 3 года назад

    is it okay to use rabbitmq in a monolithic application (for handling many requests at the same time) ?? and if you can make a video on how to scale a monolithic application for small teams

    • @hnasr
      @hnasr  3 года назад

      Absolutely fine, rabbitMQ is not exclusive for Microservices

    • @wassim5622
      @wassim5622 3 года назад

      @@hnasr Thanks

  • @SuperMichielv
    @SuperMichielv 4 года назад

    how does your vs code editor does that code completion of the amqplib if the node_modules are not installed yet in your project?

    • @hnasr
      @hnasr  4 года назад

      SuperMichielv it might be a cache of a previous install of amqplib that I made. Interesting

    • @SuperMichielv
      @SuperMichielv 4 года назад

      @@hnasr thanks for your response!

  • @azharsassy
    @azharsassy 4 года назад

    what is the other alternative open source MQ if you say if Rabit MQ is complex..

    • @hnasr
      @hnasr  4 года назад +1

      I am still looking to be honest, I tried ZeroMQ ruclips.net/video/UrwtQfSbrOs/видео.html but wasn’t exactly what i was looking for
      People suggested for me to look NSQ but haven’t done that yet..

    • @azharsassy
      @azharsassy 4 года назад

      @@hnasr I have worked on IBM MQ.. whats your thoughts on that ? is it the best ?

  • @elissar4158
    @elissar4158 3 года назад

    thank you
    how write a publisher client django without celery please help me

  • @senthilkumarnadarajan2247
    @senthilkumarnadarajan2247 2 года назад

    What an explanation! Nice :)

  • @nicolass8941
    @nicolass8941 4 года назад +1

    Crazy dude ;))) thx for happy moment

  • @yinonelbaz5309
    @yinonelbaz5309 Год назад

    Thank you very much for the video!!!