009 用戶端編碼

來源:互聯網
上載者:User

標籤:div   body   col   connect   串連   sicp   訊息佇列   class   throw   

一 .概述

  Rabbitmq的java用戶端的API是本人見過的最垃圾的API的設計,沒有之一.

  在這些API之中,竟然使用了方法的重載代表了不同的行為,這也是服氣到不行.

 

二 .訊息的發布

  我們首先看看核心的API:  

void basicPublish(String exchange, String routingKey, boolean mandatory, BasicProperties props, byte[] body)
  throws IOException;

我們可以從上面看到,發送一個訊息最重要的就是制定一個交換器和路由鍵,然後最後的參數就是設定訊息的內容,中間的參數就是一些附加的屬性.

  我們還發現了一個mandatory參數,這個在後面去介紹.

我們一般不會使用最長的那一個方法,其中的immediate這個參數已經被廢棄了.

記住:

  [1]找到一個交換器

  [2]給出一個路由鍵

  [3]發送一個訊息

  參數和mandatory需要的時候再去設定.

 

二 .聲明交換器

  在上面,我們看到發布一個訊息首先需要聲明一個交換器.  

    void exchangeDeclareNoWait(String exchange,                               String type,                               boolean durable,                               boolean autoDelete,                               boolean internal,                               Map<String, Object> arguments) throws IOException;

我們就介紹一下這個最長的方法.

[1]交換器的名稱

[2]交換器的類型

[3]交換器是否持久化

[4]是否自動刪除(如果這個交換器沒有任何一個隊列與它有關係,那麼它就會被自動刪除)

[5]internal : 這個我們一般設定為false

[6]附加的參數,對交換器的屬性進行設定,這個在後面需要的時候會去介紹

 

三 .聲明訊息佇列  

    Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,                                 Map<String, Object> arguments) throws IOException;

我們只需要介紹這個最長的參數就可以了.

[1]訊息佇列的名稱

[2]是否持久化

[3]是否排他 : 那一個串連(Connection)聲明的他,這個隊列就會對這個串連有效,當串連斷開的時候,這個隊列自動刪除了.一般情況下,我們不會設定的.

[4]是否自動刪除

[5]附加的參數

 

四 .綁定

  所謂的綁定在前面已經說明過了,就是將訊息佇列和交換器進行串連,其中,我們需要給出一個綁定鍵.

  同時還存在交換器和交換器的綁定,這種我們現在先不去說.

Queue.BindOk queueBind(String queue, String exchange, String routingKey, Map<String, Object> arguments) throws IOException;

上面的參數比較的簡單,就是給出一個隊列的名稱,然後一個交換器的名稱,然後給出一個綁定鍵的名稱就好了.

 

009 用戶端編碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.