<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .Net中簡單地使用RabbitMQ消息隊(duì)列

          共 2145字,需瀏覽 5分鐘

           ·

          2022-05-09 12:29

          一.簡介
            消息隊(duì)列(Message Queue),指的是消息傳遞之間的容器,通常使用場景是,不需要立刻得到結(jié)果,但有需要對(duì)并發(fā)量進(jìn)行控制的時(shí)候。

            有很多組件可以實(shí)現(xiàn)消息隊(duì)列,這里使用RabbitMQ。本文是為了簡單記錄一下.Net (Core)中如何通過EasyNetQ去使用RabbitMQ。

          二.使用

          1.環(huán)境準(zhǔn)備

            下載安裝Erlang和RabbitMQ,我這里是在Windows上安裝的。

            準(zhǔn)備兩個(gè)控制臺(tái)應(yīng)用(Publisher和Subscriber)和一個(gè)類庫(Messages)。

          34daf7bd76346b072c936ede76678b9c.webp

          ?

            通過Nuget,給Publisher和Subscriber項(xiàng)目安裝EasyNetQ。

          7ad2299bc48de4c8f2c3505711ec8f52.webp

          ?

          ?  在Messages類庫中,添加一個(gè)類。

          public class TextMessage{    public string Text { get; set; }}

          2.Publisher項(xiàng)目

          class Program{    public static void Main(string[] args)    {        var connStr = "host=127.0.0.1;virtualHost=EDCVHOST;username=admin;password=123456";
          using (var bus = RabbitHutch.CreateBus(connStr)) { var input = ""; Console.WriteLine("Please enter a message. 'Quit' to quit."); while ((input = Console.ReadLine()) != "Quit") { bus.PubSub.Publish(new TextMessage { Text = input }); } } }}

            通過EasyNetQ去連接RabbitMQ,然后使用它創(chuàng)建的IBus實(shí)例來發(fā)布消息。這里的通過用戶在控制臺(tái)輸入字符串來發(fā)送消息。

          3.Subscriber項(xiàng)目

          class Program{    public static void Main(string[] args)    {        var connStr = "host=127.0.0.1;virtualHost=EDCVHOST;username=admin;password=123456";
          using (var bus = RabbitHutch.CreateBus(connStr)) { bus.PubSub.Subscribe("my_test_subscriptionid", HandleTextMessage);
          Console.WriteLine("Listening for messages. Hit to quit."); Console.ReadLine(); } }
          public static void HandleTextMessage(TextMessage textMessage) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Got message: {0}", textMessage.Text); Console.ResetColor(); }}


            這里是訂閱消息,只要程序在運(yùn)行中,就會(huì)一直處于監(jiān)聽狀態(tài)。只要發(fā)布者發(fā)布了指定類型的消息,這里就可以實(shí)時(shí)獲取到,然后打印出來。

          4.測試

          ?  運(yùn)行兩個(gè)控制臺(tái)應(yīng)用。在Publisher中輸入字符,Subscriber就會(huì)實(shí)時(shí)獲取。

          a477fd3269b49c5751fafbc857543f7f.webp

          ?

          ?  進(jìn)入到RabbitMQ界面查看,在connections中可以看到目前兩個(gè)客戶端都在運(yùn)行中(running)。

          de3bc3572a4f335e7171b8610b061592.webp

          ?

          ?  在Queues中,看到目前注冊(cè)的隊(duì)列只有一個(gè)。

          96bac392fd93a1d2b1a483c7c9beaf70.webp

          ?

          ?三.總結(jié)

            1.在.Net中可以使用EasyNetQ插件來使用RabbitMQ。

            2.本文的例子涉及到了消息隊(duì)列的訂閱發(fā)布模式。

          https://www.cnblogs.com/shadoll/p/14597682.html


          版權(quán)聲明:本文來源于網(wǎng)友收集或網(wǎng)友提供,僅供學(xué)習(xí)交流之用,如果有侵權(quán),請(qǐng)轉(zhuǎn)告版主或者留言,本公眾號(hào)立即刪除。



          a0b7f90abc4c6f0259c8b65f7df44df1.webp支持小薇

          騰訊云福利?

          ?爆款2核2G云服務(wù)器首年50元,2G2核5M云服務(wù)器259元/3年

          鏈接:https://curl.qcloud.com/1VVs7OBH

          關(guān)注:DotNet開發(fā)跳槽

          ?????????????????????????????????????????????????????????????

          ??041cb4bd173ad3b639e8ea5e1dac0851.webp覺得不錯(cuò),請(qǐng)點(diǎn)個(gè)在看5b08ee8636679ec24fdcb41a5327c865.webp

          瀏覽 50
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色免费在线小电影 | 国产免费一区二区三区在线 | 国产九九精品视频 | 青青草婷婷 | 四虎成人精品永久免费AV |