2014-04-10 62 views
37

我想知道RabbitMQ可以在單個服務器上處理多少個最大隊列?RabbitMQ - RabbitMQ可以在單個服務器上處理多少個隊列?

是否依賴於內存?它依賴於erlang過程嗎?

+1

Can RabbitMQ Server可以處理1000萬個隊列嗎?我的服務器需要多少內存? –

+0

@ N.B。 - 沒有它沒有硬件相關:),它關於處理請求關於RabbitMQ –

+3

我同意我應該考慮硬件,但硬件工程師不能回答這個問題:) ..這個問題需要知識rabbitMQ服務器,消息隊列協議和最後但並非最不重要多少內存的RabbitMQ的花費%(我認爲它的內存總量的40%) –

回答

32

有沒有RabbitMQ的券商內部的任何硬編碼的限制。該券商將利用一切可用的資源(除非你爲他們中的一些限制,他們被稱爲水印在RabbitMQ的術語)。

Erlang本身存在一些限制,比如最大併發進程數量,但如果理論上可以在單個節點上達到它們,那麼使用distributed features總是個好主意。

有很多關於RabbitMQ的資源使用和限制的討論,

P.S.雖然有AMQP協議限制。它們在部分4.9 Limitations

中描述的AMQP規格強加從同一線路級格式 AMQP或協議中的未來擴展這些限制:

  • 每個連接通道數:16位信道數。
  • 協議類別數量:16位類別ID。
  • 每個協議類別的方法數量:16位方法ID。

的AMQP規格強加數據這些限制:

  • 的短字符串的最大尺寸:255個字節。
  • 長字符串或字段表的最大大小:32位大小。
  • 幀有效載荷的最大大小:32位大小。
  • 內容的最大大小:64位大小。

服務器或客戶端還可以強加其自己的限制上的資源,例如 如同時連接的數量,消費者每 信道,隊列的數量,等等。這些不影響互操作性 的數目和未指定。

16

這篇文章可以幫助你:

http://rabbitmq.1065348.n5.nabble.com/Max-messages-allowed-in-a-queue-in-RabbitMQ-td26063.html

編輯

1)最大允許隊列中的RabbitMQ?

儘管每個對象(例如,隊列,交換,綁定等)將佔用一些內存和/或磁盤空間,但成千上萬(甚至數萬)的隊列根本沒有問題 。默認情況下,將二郎在 圍繞32768 IIRC執行併發進程(即,輕量 線程)的最大數目。每個隊列由其自身 流程管理,可能會導致幾個每一個連接,所以如果你是 規劃上,同時具有非常大數量的活動隊列在單個節點 (?),並使用所有這些,那麼您可能需要 通過將+ P設置爲更高限制來調整仿真器參數rabbit傳遞虛擬機的權限。

你也可能使用了許多千兆只是開銷每個 隊列/連接相當快,所以你會需要一個漂亮的肉香 服務器來處理數百萬的都有。成千上萬應該不是 問題,只要它們適合RAM。

+1

好帖子。基本上我想要技術答案爲Ex。 1GB內存可以hangle ..like這個這麼多的要求 - 這樣我就可以決定我應該增加RAM –

+2

正如你可以在閱讀後: 「所以,如果你打算在具有在一個非常大的數量的活動隊列節點(?)並同時使用它們,那麼您可能需要通過將+ P 設置爲更高的限制來調整兔子通過虛擬機的仿真器參數。「 因此,您必須創建真實的仿真,數量取決於形式的活動..連接..然後你可以dedice。 – Gabriele

+0

您應該從該頁面添加一些引號,因爲它可能會消失。 – Beryllium

相關問題