Intro To RabbitMQ

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ก.พ. 2023
  • RabbitMQ is a powerful message broker that can help you create resilient and scalable applications. If you're not familiar with message brokers, don't worry - by the end of this video, you'll have a clear understanding of what they are and why they're useful.
    In this video, I'll explain the basics of message brokers, demonstrate how RabbitMQ can be used with C# applications, and provide tips for setting it up effectively. Whether you're building microservices or simply looking to improve the reliability and scalability of your applications, this video will be a valuable resource for you.
    Full Training Courses: IAmTimCorey.com
    Source Code: leadmagnets.app/?Resource=Int...
    Mailing List: signup.iamtimcorey.com/

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

  • @mnasirkhanctl
    @mnasirkhanctl ปีที่แล้ว +53

    Not only you teach coding, but architecting a system at the same time. Blessed to have a mentor like you Sir!

  • @YazanGplay
    @YazanGplay ปีที่แล้ว +5

    Can't believe you uploaded a video about RabbitMQ, I was making researches about this topic last week, I really need this video! Thanks Tim

  • @aditheorigin4926
    @aditheorigin4926 ปีที่แล้ว +14

    Great content.. your content not only teach us c# but the whole echo system. ♥️

  • @user-ht9st4up8q
    @user-ht9st4up8q 3 หลายเดือนก่อน

    I really like these clips; they help me understand instantly, unlike other TH-cam videos.

    • @IAmTimCorey
      @IAmTimCorey  3 หลายเดือนก่อน +1

      Great!

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

    Thanks for the vid Tim. Just yesterday I was looking for a tutorial on this topic and did not find something as clear.
    Thank you so much.

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

    Tim. You're doing a lot of good stuff for people who needs a practical focus of the knowledge, specially in a world where people expect you to have experience with every tool and aspect.

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

      Thank you!

  • @marks_02
    @marks_02 ปีที่แล้ว +13

    Another great option is to use Azure Service Bus as the queue, and then use Azure functions to pull out of service bus. The functions can be triggered automatically when a message arrives in the SB.

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +5

      Yep. Functions can operate on both sides.

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

    Great stuff Tim. I Was looking for a tutorial on this topic and the experience I got is the best. Looking out for more.

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

    I have been waiting for RabbitMQ, explained by you for a long time. Now, I am confident that I'll know what the hell is this XD.
    Thank you for everything.

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

    Thank you for the great video again Tim! :)

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

    Hi
    Very clear way of explaning.
    I saw some videos on RabbitMQ, but I was waiting for your way of explaining things.
    Thanks

  • @unknown-xt1gy
    @unknown-xt1gy ปีที่แล้ว

    Amazing knowledge I got from this tutorial, Thank you very much

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

    Thanks! Another excellent explanation as always

  • @ngobenimsesenyaneplatius9862
    @ngobenimsesenyaneplatius9862 8 หลายเดือนก่อน

    this is a great intro, straight to the point

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

    Thank you for another great Video Tim.

  • @torrvic1156
    @torrvic1156 10 หลายเดือนก่อน +2

    Thanks a lot Tim! Even I with my zero experience with RabbitMQ and in a kind of stressful condition managed to understand something about it. At least know I know what it is and what is the purpose of this system.

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน +2

      I am glad it was helpful.

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

    Great video Tim! Hope to see more RabbitMQ content soon :)

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

    thank you so much, now i can understand rabbitmq

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

    Thank you very much for the video, it was very useful.

  • @jameswachira5713
    @jameswachira5713 4 หลายเดือนก่อน

    Excellent tutorial. Very helpful

    • @IAmTimCorey
      @IAmTimCorey  4 หลายเดือนก่อน

      I am glad it was helpful.

  • @xexexino779
    @xexexino779 3 หลายเดือนก่อน

    Thank you Tim , ur explanation On Point 😎

    • @IAmTimCorey
      @IAmTimCorey  3 หลายเดือนก่อน

      You are welcome.

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

    Dziękujemy.

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

      Thank you!

  • @haripranesh5342
    @haripranesh5342 9 หลายเดือนก่อน

    Great explanation man👌 Thank you !

    • @IAmTimCorey
      @IAmTimCorey  9 หลายเดือนก่อน

      You are welcome.

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

    For years I was constrained to having to use MSMQ and I wasn't that keen on message queues. RabbitMQ is so much better in so many ways, big fan of message queues now.

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

      I am glad it was helpful.

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

      Microsoft excels at taking relatively simple concepts and implementing them in the most extraordinarily complicated ways as possible.

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

    What a masterpiece AS ALWAYS

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

    Thanks for the video! I'm new to the message broker concept and a little confused still. If I stand up a C# API, should the "Receiver" call the API on the received event? Is is standard to host the MQ on the same server as one of the API's? If I'm understanding correctly I can place this in-between my API and my JavaScript website? I really appreciate all the content!

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

    I was able to use Dapper and insert the messages, I used a stored procedure, really cool.

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

    Very Good quick lesson

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

      Thank you!

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

    Hi Tim,
    Great video, really helpful. I have a question:
    I expected that if the data is being encoded as byte[] we wouldn't be able to see the message on rabbitMQ UI, how could we?

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

    Hi @iamtimcorey , thanks for the great tutorial. My current organization is using rabbitmq for production too. One question, can we use rabbitmq for simple chat applications where one to one and one to many user are present?

  • @FernandoLab
    @FernandoLab 22 วันที่ผ่านมา

    Thank you so much!

    • @IAmTimCorey
      @IAmTimCorey  21 วันที่ผ่านมา

      You're welcome!

  • @Baraka-yl2dp
    @Baraka-yl2dp ปีที่แล้ว +3

    Great Video. Keep up the good work. I was wondering how this would compare or collaborate with SignalR? I think that would be an excellent topic for another video. Another excellent option for another video will be how to integrate this in Azure for many remote clients from many sources or senders.

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

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
      As for a comparison to SignalR, they are really different. SignalR maintains a constant connection between the server and client in order to send and receive messages. With RabbitMQ, you send messages to the server and then close the connection. The server holds the messages until someone is listening. Then it sends the messages to the client. It is a very disconnected, asynchronous system.

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

    That's really interesting topic!

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

    Excellent SIR

  • @fatmazayed
    @fatmazayed 3 หลายเดือนก่อน

    very nice explaniation with real demo 🥰

    • @IAmTimCorey
      @IAmTimCorey  3 หลายเดือนก่อน

      Thank you!

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

    awesome Tim!

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

    Great tutorial, +1

    • @IAmTimCorey
      @IAmTimCorey  2 หลายเดือนก่อน +1

      Thank you!

  • @sumeyyebusra
    @sumeyyebusra 10 หลายเดือนก่อน

    Great video! I hope we get a tutorial on MassTransit too. Thank you so much.

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

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

    The drawing tool is awesome

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

    Thank you so much 😊

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

    Thanks Tim :)

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

    Do you have an example of a production application with asynchronous message handling and exception handling?

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

    Thanks a lot

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

    Hey Tim, that was a great content. Do you have any plan to bring more tutorials on this topic?

  • @user-uq7hg9zw5j
    @user-uq7hg9zw5j 7 หลายเดือนก่อน

    Really good tutorial

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

      Thank you!

    • @user-uq7hg9zw5j
      @user-uq7hg9zw5j 7 หลายเดือนก่อน

      Only a question, if the consumer doesn't ack the message , does the massage position chage? I mean is the not ack message pushed in the queue? thanks a lot@@IAmTimCorey

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

    This is a great video! I really learned a lot. I'll try to simulate this too later. Just want to check if you have a video related to dead letter exchange. Thank you!

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

      I don't have a video specific to dead letter exchange. Sorry. You can add it as a suggestion on suggestions.iamtimcorey.com if you want to see one.

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

    Thank you.

  • @hervelabrie-durand3701
    @hervelabrie-durand3701 9 หลายเดือนก่อน

    Great video

  • @VuvaToniKroos
    @VuvaToniKroos 10 หลายเดือนก่อน

    thank you, Sir

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      You're welcome!

  • @satyanarayana2645
    @satyanarayana2645 10 หลายเดือนก่อน

    Really Great Content Tim. Now I got good understanding on RabbitMQ. In addition to present video, could you please do some video related to connecting to rabbit mq using azure functions and sending messages. Thanks once again for your valuable time and efforts.

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

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

    Tim The gem!

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

      Thanks!

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

    Great Vid Tim, Love the VS tips as well. You started off by talking about a 'sign up page'. So for example, if the client hits submit to register, then it gets queued, client closes down etc, when the message eventually gets processed, and the client was already registered, what happens then?

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

      or are we talking a max of a few seconds where the client just waits for the response.

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

      Most signup actions don't have to be immediate. For instance, even the "we've sent you an email. Click on the link in it to create your login." isn't really immediate. That can take a few seconds and it is ok. Others, though, are even longer. For instance, the welcome email that tells you about the services available to you. That can come out days later and its ok.

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

    Thanks🎉🎉

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

      You are welcome.

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

    Great video Tim 👍
    Could you also do DDS (Data Delivery Service)?
    And possibly how it is used in ROS2?

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

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

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

      @@IAmTimCorey Done

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

      @@IAmTimCorey I like to do that. But I think admins need to first do a (p)review and give the thumbs up before I get that kind of option.

  • @user-ej9bv7qf1e
    @user-ej9bv7qf1e 7 หลายเดือนก่อน

    How one can consume some messages, not acknowledge them immediately, close the channel/connection, and later on, in a new process acknowledge a few selected consumed message? The selection is based on some side processes on the consumed messages.

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

    Hi Tim thanks for your video, please make a video like this for Redis

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

      I already did: th-cam.com/video/UrQWii_kfIE/w-d-xo.html

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

      @@IAmTimCorey Thanks a lot Tim

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

    Thanks for sharing! I'm left with a question that the video does not mention that much about, which is 'when do I use it'?
    We are going to use it to get webhook events from the payment service stripe and store it in the database that our server uses. The advantage we see is no load on server and no extra code in our server. We want to create a message bus for sending requests to others services as well like the CRM service hubspot.
    But when I saw our video I was thinking we could also use RabbitMQ for client requests like you show in your video and the part about load-balancing is interesting and got me thinking how many things people can wait for and I can't think of a lot. Actually I could only think of your example 'the register account' case.
    I'm thinking regular show a list of all 'objects' or all CRUD operations where you want the list of objects to be changed instantly. What I could think of was registering to a newsletter and could maybe think of more examples, but I think it would only be a low percentage of all requests going to the server that could wait. Is that true in most cases it's only very little of websites traffic which are using queues?
    Also I was thinking do anyone go all out and puts every request in the queues to get the full benefit of the load/balancing, or would it hurt performance for e.g. loading some objects details page too much with this layer?
    Thanks again, so much quality in your videos.

    • @IAmTimCorey
      @IAmTimCorey  11 หลายเดือนก่อน +1

      Good questions. Queues are typically more useful for tasks that are long-running rather than ones that need real-time results. For instance, you could request a report and have it emailed to you once the report is generated. That could use a queue. You could use a queue for a purchase, where the warehouse processes it, the shipping department processes the next step (also from a queue), etc. Typically, you wouldn't be using it for times when the user wants an immediate response.

  • @uchendukwe786
    @uchendukwe786 10 หลายเดือนก่อน

    Thank you for this great intro. Please is there a way for one message to be consumed by more than one consumer such that when the producer sends a message, the message can be consumed by 2 or more consumers? I am looking at a pub/sub scenario where one producer sends a message that is needed by multiple consumers. How do you ensure that the message is not deleted immediately the first consumer consumes it and how do you ensure the message gets removed from the ques after it has been consumed by all the consumers that need to consume it?

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      Yep, that's a setting you can set. You just need to establish how long the messages will live, etc.

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

    Hi Tim,
    Is RabbitMQ only work for post or put actions? not used in get and delete action ?

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

      RabbitMQ is a message broker. It just receives and sends messages. What you do when you receive those messages is up to you.

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

      @@IAmTimCorey Thanks for your reply, I also watched your suggestion app course. in this scenario, can I use RabbitMQ between Blazor server and MongoDB, use a background worker to receive a message from RabbitMQ ? but if I want to get a suggestion data (not post a suggestion data), Can I send get request message to RabbitMQ? Thanks in advance.

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

    Can rabbitmq be a replacement for signal r? If so, then signal r would eventually be dead. What a person would do is use rabbit mq to put to the que and whoever, takes it would do it. obviously if several parts need it, then hopefully a workaround for it. Is this intended to even replace signal r?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +4

      No, they are two completely different technologies that serve two different purposes. With SignalR, ApplicationA opens up a direct connection to ApplicationB. It then keeps that connection open as long as is needed (usually the entire length of the application's lifecycle). RabbitMQ, on the other hand, sits in between the two applications. ApplicationA sends a message to RabbitMQ. That connection is then closed (or more messages can be sent, but the connection does not need to be open all the time). RabbitMQ puts the message in the right queue and potentially alerts all interested parties (one or many). If the message is to be processed once, as was the case in our demo, ApplicationB will connect to RabbitMQ and get the message. That connection does not need to be established while ApplicationA is sending the message.
      An analogy would be that SignalR is a phone call and Message Brokers (like RabbitMQ) are email hosts. We still make phone calls, even though we can send an email and we still send email even when we could make a call. The two communication mediums serve different purposes.

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

    Tim, why you don't have content on mobile? Xamarin is not good enough? I need to learn mobile but I'm struggling to decide between C# technology and flutter with Dart.

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

      I've covered intros to .NET MAUI and Blazor Hybrid (both successors to Xamarin). I haven't done a lot with mobile because it is a bit of a niche subject. However, I will be covering it more in the near future.

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

      @@IAmTimCorey Awesome, thanks.

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

    that's great

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

      Thank you!

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

    Currently I'm working with hangfire, I don't see the difference between Rabbit MQ and Hangfire, Can you help me please? Thank you!

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

      Hangfire schedules tasks. RabbitMQ receives messages and sends them out (think email server).

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

    The only thing concerning about azure service bus which is related to rabbitmq is the cost. I doubt most businesses would want to pay over 10,000 dollars a month for azure service bus no matter how good it is unfortunately. Are there any free online queing options?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +5

      Azure Service Bus costs $0.05/million messages. If you get to $10,000/month, you are either doing something wrong or you should be happy to pay that amount.

  • @DavidMartin-vs1dm
    @DavidMartin-vs1dm ปีที่แล้ว

    Will your next tutorial be for using complex type messages?

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

      Probably not, but I may if I get enough interest on the suggestion site: suggestions.iamtimcorey.com

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

    I think discussing a long running process, such as a large file upload, is useful in these instances as you can't tell the user the status of the file upload right away.

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

      I'm sorry, I'm not sure what you mean.

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

      @@IAmTimCorey I think what mike is trying to say is that it would be nice to hear about how we could be able to show the status of say, a file upload to the client so it doesnt just hang.
      i dont know though but im assuming thats what he means

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

    Hey Tim, can you tell me how to make the annotations appear at 16:43 like the one called "uriString" inside the Uri method?

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

      Here you go: th-cam.com/video/morBKqtqmso/w-d-xo.htmlsi=0YKpnFgXE27nvQgs

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

      @@IAmTimCorey Thanks Tim.

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

    I get the error message "None of the specified endpoints were reachable" in line 8 of the sender script:
    IConnection cnn = factory.CreateConnection();
    The URI is correct and the server (via Docker) is running. Does anybody know a solution?
    Die RabbitMQ change the syntax?

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

      Syntax is still working the same, maybe there's a small problem with the docker container.
      You can try deleting your existing container and create a new one with this line:
      docker run -d --hostname rmq --name rabbit-server -p 8080:15672 -p 5672:5672 rabbitmq:3-management
      (just paste it into cmd)
      if that doesn't work either mabye there's a typo somewhere else (that happens to me quite often ^ ^) here's the code:
      using RabbitMQ.Client;
      using System.Text;
      ConnectionFactory factory = new();
      factory.Uri = new Uri(uriString: "amqp://guest:guest@localhost:5672");
      factory.ClientProvidedName = "Rabbit Sender App";
      IConnection cnn = factory.CreateConnection();
      IModel channel = cnn.CreateModel();
      string exchangeName = "DemoExchange";
      string routingKey = "demo-routing-key";
      string queueName = "DemoQueue";
      channel.ExchangeDeclare(exchangeName, ExchangeType.Direct);
      channel.QueueDeclare(queueName, false, false, false, null);
      channel.QueueBind(queueName, exchangeName, routingKey, null);
      /*byte[] messageBodyBytes = Encoding.UTF8.GetBytes("Hello everyone!");
      channel.BasicPublish(exchangeName, routingKey, null, messageBodyBytes);*/
      for (int i = 0; i < 60; i++)
      {
      Console.WriteLine("Sending message: " + i);
      byte[] messageBodyBytes = Encoding.UTF8.GetBytes("Message #" + i);
      channel.BasicPublish(exchangeName, routingKey, null, messageBodyBytes);
      Thread.Sleep(1000);
      }
      channel.Close();
      cnn.Close();

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

    Colored tabs are useful if we use vertical Tabs. Yes it will be helpful to have corresponding color in Solution explorer.

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

    I have watched many of your videos and found them really helpful, but whenever I look for the source code, it always takes my email and I've never once received the source code file unfortunately.

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

      Check your spam filter. We are working on an improved system. Just takes time. In the meantime, email help@iamtimcorey.com and Tom can get it to you a different way.

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

    I have a question. Couldn't sql server be used as a service bus? If so, then rabbit mq would be completely useless because you simply put into sql server. sql server can easily be like a que system where you put data and whoever processes it does not have to be online at the time. When they process, then can delete from sql server. what is the advantage of rabbit mq vs using sql server?

    • @IAmTimCorey
      @IAmTimCorey  ปีที่แล้ว +5

      SQL is far more expensive and is not designed to be a queue. For instance, it cannot guarantee that only one application gets the message, it doesn’t do push notifications, it doesn’t handle the constant churn of messages as well, and much more.

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

      I’ve got a queueing system up and running in SQL (had to do it that way because it’s managed by non developer IT people who do know sql quite well).
      It’s ok, it can easily handle 1000 requests a minute and process them individually, but when you get a backlog (say the server is down for a couple of hours) it really starts to slow down.
      RabbitMQ is designed to act like a firehose, doing testing with it in docker I had messages going through at about 1000 a second, never mind a minute.

  • @androidsavior
    @androidsavior 10 หลายเดือนก่อน

    How can we make a web app listen and recieve messages ?

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      That’s what an API does.

    • @androidsavior
      @androidsavior 3 หลายเดือนก่อน

      @@IAmTimCoreyit worked in a web app by placing the code inside a 'BackgroundService' and putting 'await Task.Delay(1000, stoppingToken);' inside an infinite while loop `while (!stoppingToken.IsCancellationRequested)`

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

    I have an issue here. The thing is that im not very familiar with this type of applications and im trying to learn. I have thrown the dokcer container an I do have access to RabbitMQ Server. The thing is that when I run the Sender's program nothing happends. I mean, the program compiles with no errors, but when I check the server, I cannot find the exchange neither the queue. Does sb know the reason??

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

      Check your connection string. It may be different than mine. Also, make sure you have open ports and the ports are the correct numbers in Docker.

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

      @@IAmTimCorey sorry for bother you again but where can i find the connection string?

  • @12varshney
    @12varshney ปีที่แล้ว

    Let’s say I have 2 micro services . One is order service and other is payment . Order service can not commit until it gets confirmation that payment is successful . So if order service puts message in queue and payment service processes it then how order service get confirmation that payment is done ?

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

      Have the order service listen for a message from the payment service about completed payments.

    • @12varshney
      @12varshney ปีที่แล้ว

      @@IAmTimCorey I might have 10 requests in waiting then how order service can listen for a particular response?

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

      Each should have a unique id. Then, when the order service gets a "payment complete" message, it can use that id to figure out which order to continue processing.

    • @12varshney
      @12varshney ปีที่แล้ว

      @@IAmTimCorey Is this possible with RabbitMQ if yes then how ?

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

    Can rabbitmq be used in an offline/online desktop application?

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

      When the app comes online, it can send and receive messages. You would just need to handle how to store the messages until you are online on the desktop side.

  • @CB-wk6kr
    @CB-wk6kr 11 หลายเดือนก่อน

    It would be helpful if you could provide this course-specific list.

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

      Which course-specific list?

    • @CB-wk6kr
      @CB-wk6kr 11 หลายเดือนก่อน

      @@IAmTimCorey I was looking for this RabbitMQ course in the portal but didn't find it there.

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

      I don't have a course on RabbitMQ, sorry.

    • @CB-wk6kr
      @CB-wk6kr 11 หลายเดือนก่อน

      Thank you for the info, I thought you had one 😊

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

    Is source code sending works? I tried but didn't recieved mail.

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

      Check your spam filter. If you don't see it there, email help@iamtimcorey.com and Tom will get it to you.

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

    Hi Tim I did try to download the example but for some reason I did not receive the email.

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

      You can email help@iamtimcorey.com and someone will help you out. Just make sure to include the details like which video you were trying to get the code for.

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

    How failsafe / resilient is the queue itsself?

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

      Very, if you need it to be. You can set it up as a cluster or even as a set of clusters over multiple locations.

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

    im not getting the source code sadly, ive tried 2 different email addresses

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

      Check your spam filter and then email help@iamtimcorey.com

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

    What is the best free RabbitMQ hosting provider (dev purposes)?

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

      Host it locally with Docker. If you want to do something web-based, I would use Azure Service Bus, which will cost $0.05/1 million messages.

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

    Can you make a video about masstransit? thank you

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

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

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

      @@IAmTimCorey Upvoted MassTransit. Thanks for the amazing content.

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

    Hi Tim, Its a great video. I am facing some issue, can you please help me out. I need some help with RabbitMQ. I have started learning from now only. With so many trails, I have successfully code and run the program but whatever queues and exchanges I am declaring in my code, I am not able to display on my RabbitMQ management console its not updating there which I have run on localhost using Docker Container. Can you please help me out, I have researched and tried a lot but didn't work. My code is running well in console

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

      I'm sorry, I can't diagnose your issue from that information. Your best option is to debug step by step. If it works in one deployment but not in another, check your connection strings. Use logging and breakpoints to validate your assumptions.

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

    Hey anyone tell me whats the setup for c#?
    on Mac

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

      This will all work on a Mac. You just need to install Docker and Visual Studio for Mac and you will be set.

  • @nickadams2361
    @nickadams2361 4 หลายเดือนก่อน

    wow I had no idea excalidraw had a drawing library!

    • @IAmTimCorey
      @IAmTimCorey  4 หลายเดือนก่อน

      I'm glad you learned something new.

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

    Do you have an example of rabbit mq with one publish event and multiple subscribers for example I publish an event user created and I want two subscribers to do something with it, like one app may subscribe to event and send text and another app may subscribe to same event and log data

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

      I don't, but it is a good suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

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

      @@IAmTimCorey ok added it

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

    Please make a tutorial on MQTT Broker (emqx)

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

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @BG-eng
    @BG-eng 9 หลายเดือนก่อน

    So what happens if the Broker is down?

    • @IAmTimCorey
      @IAmTimCorey  9 หลายเดือนก่อน

      No messages go through.

  • @NOOB_TO_PRO-hk4iy
    @NOOB_TO_PRO-hk4iy 9 หลายเดือนก่อน

    Hi,no email received to download code

    • @IAmTimCorey
      @IAmTimCorey  9 หลายเดือนก่อน

      Email help@iamtimcorey.com and they can help you out.

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

    I did not receive code in my email

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

      Email help@iamtimcorey.com

  • @MTEXX
    @MTEXX 10 หลายเดือนก่อน

    Neo: I know Rabbit MQ

    • @IAmTimCorey
      @IAmTimCorey  10 หลายเดือนก่อน

      👍🏻

  • @LogicException
    @LogicException 8 หลายเดือนก่อน

    47:08 Message #47, #49 and #48. Unfortunately, he didn't address this great case at that moment.

    • @IAmTimCorey
      @IAmTimCorey  8 หลายเดือนก่อน

      Order is not guaranteed. Is that what you wanted to be covered?

  • @user-um4xd3he1o
    @user-um4xd3he1o 7 หลายเดือนก่อน

    It's too difficult without translation.

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

      What do you mean? The captions can be viewed in any language, just so you know.