首頁  >  文章  >  後端開發  >  C#中關於RabbitMQ應用的圖文程式碼詳解

C#中關於RabbitMQ應用的圖文程式碼詳解

黄舟
黄舟原創
2017-07-27 16:10:302742瀏覽

                   

                   工作方式不多說,先直接上一個簡單範例程式碼

       ##r                接收端:


            ConnectionFactory factory = new ConnectionFactory { HostName = "hostname", UserName = "root", Password = "root001", VirtualHost = "hostserver" }; 
                       using (IConnection conn = factory.CreateConnection())
            {                using (IModel im = conn.CreateModel())
                {
                    im.ExchangeDeclare("rabbitmq_route", ExchangeType.Direct);
                    im.QueueDeclare("rabbitmq_query", false, false, false, null);
                    im.QueueBind("rabbitmq_query", "rabbitmq_route", ExchangeType.Direct, null);                    
                    for (int i = 0; i < 1000; i++)
                    {                        byte[] message = Encoding.UTF8.GetBytes("Hello Lv");
                        im.BasicPublish("rabbitmq_route", ExchangeType.Direct, null, message);
                        Console.WriteLine("send:" + i);
                    }
                }
            }

                           使用且已送置一千條,且相對要慢一點,接收時要慢一點,接收時要慢一點。

                          
 

 只限一個接收著,那相同的發送量,多個接收者會出現什麼情況,增加一個新的接收端,直接複製DEMO中接收端即可。

                         

     #                        

#        會按順序的分發每個訊息。當每個收到確認後,會將該訊息刪除,然後將下一個分發到下一個接收者,主要是因為RabbitMQ的循環分發

機制。

                        在以上簡單說了一下,在多個接收者時,因為循環分發的原因,訊息幾乎是兩個接收端對分的。

                       則以相同的訊息分發至多個收件者。

                       修改者修改:##   與上種方式比較,會發現在程式碼註解後面少兩段程式碼,在設定了Fanout方式後,不需要再指定佇列名稱。停一秒是為了方便看結果,以免刷新太快。

                                                  當新的接收端連結(消費者),且需要申報一個新的佇列,註1處代碼,RabbitMQ在申報佇列時,如果不指定名稱會自動產生一個,這還是不錯的。

                               地

                                      

                                                    且所含

##################》

以上是C#中關於RabbitMQ應用的圖文程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn