基于RabbitMQ幾種Exchange模式詳解-創(chuàng)新互聯(lián)

AMQP協(xié)議中的核心思想就是生產者和消費者隔離,生產者從不直接將消息發(fā)送給隊列。生產者通常不知道是否一個消息會被發(fā)送到隊列中,只是將消息發(fā)送到一個交換機。先由Exchange來接收,然后Exchange按照特定的策略轉發(fā)到Queue進行存儲。同理,消費者也是如此。Exchange 就類似于一個交換機,轉發(fā)各個消息分發(fā)到相應的隊列中。

成都創(chuàng)新互聯(lián)公司:2013年至今為各行業(yè)開拓出企業(yè)自己的“網站建設”服務,為近千家公司企業(yè)提供了專業(yè)的做網站、網站設計、網頁設計和網站推廣服務, 專業(yè)公司由設計師親自精心設計,設計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網站構架,制作客戶同行業(yè)具有領先地位的。

RabbitMQ提供了四種Exchange模式:fanout,direct,topic,header 。 header模式在實際使用中較少,本文只對前三種模式進行比較。

一. Fanout Exchange

基于RabbitMQ幾種Exchange 模式詳解

所有發(fā)送到Fanout Exchange的消息都會被轉發(fā)到與該Exchange 綁定(Binding)的所有Queue上。

Fanout Exchange 不需要處理RouteKey 。只需要簡單的將隊列綁定到exchange 上。這樣發(fā)送到exchange的消息都會被轉發(fā)到與該交換機綁定的所有隊列上。類似子網廣播,每臺子網內的主機都獲得了一份復制的消息。

所以,F(xiàn)anout Exchange 轉發(fā)消息是最快的。

     /// <summary>
  /// 生產者
  /// </summary>
  /// <param name="change"></param>
  private static void ProducerMessage(MyMessage msg)
  {
   var advancedBus = CreateAdvancedBus();

   if (advancedBus.IsConnected)
   {
    var exchange = advancedBus.ExchangeDeclare("user", ExchangeType.Fanout);

    advancedBus.Publish(exchange, "", false, new Message<MyMessage>(msg));
   }
   else
   {
    Console.WriteLine("Can't connect");
   }

  }

  /// <summary>
  /// 消費者
  /// </summary>
  private static void ConsumeMessage()
  {
   var advancedBus = CreateAdvancedBus();
   var exchange = advancedBus.ExchangeDeclare("user", ExchangeType.Fanout);

   var queue = advancedBus.QueueDeclare("user.notice.wangwu");
   advancedBus.Bind(exchange, queue, "user.notice.wangwu");
   advancedBus.Consume(queue, registration =>
   {
    registration.Add<MyMessage>((message, info) => { Console.WriteLine("Body: {0}", message.Body); });
   });
  }

名稱欄目:基于RabbitMQ幾種Exchange模式詳解-創(chuàng)新互聯(lián)
轉載注明:http://bm7419.com/article12/ijedc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供品牌網站建設、微信小程序、軟件開發(fā)、移動網站建設、自適應網站、外貿建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司