擴展佇列

功能 > 水平擴展 > 擴展佇列

在單一訊息代理器中擴展到數萬個佇列相對簡單,但需要從預設設定進行一些配置更改。

減少執行緒

使用預設設定時,ActiveMQ Classic 配置為每個佇列使用一個調度執行緒。您可以在目的地策略條目上設定 optimizedDispatch 屬性 - 請參閱配置佇列

ActiveMQ Classic 可以選擇在內部使用執行緒池來控制訊息的調度,但由於許多部署作業系統在處理大量執行緒方面表現良好,因此預設關閉此功能。若要啟用此選項,請在啟動腳本 INSTALL_DIR/bin/activemq 中設定 ACTIVEMQ_OPTS 以停用專用任務執行器 - 例如:

ACTIVEMQ_OPTS="-Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=false"  

或者,您可以在 /etc/activemq.conf 中設定 ACTIVEMQ_OPTS。

注意:從 ActiveMQ Classic 5.6 開始,預設停用專用任務執行器 (請參閱AMQ-3667)。

若要減少用於傳輸的執行緒數量,請考慮使用 NIO 傳輸 - 請參閱配置傳輸

這是其中一個提供的範例訊息代理器設定檔案中使用的範例

減少記憶體消耗

減少每個執行緒使用的記憶體 - 請參閱減少記憶體消耗

減少檔案描述符數量

ActiveMQ Classic 預設使用 amqPersistenceAdapter 來處理持久訊息。不幸的是,此持久性配接器 (以及 kahaPersistenceAdapter) 會為每個佇列開啟一個檔案描述符。當建立大量佇列時,您很快就會遇到作業系統的限制。

您可以選擇其他持久性選項

或者 - 嘗試使用 5.3 及更高版本中的新KahaDB

增加每個程序檔案描述符的限制

嘗試在 Google 上搜尋您使用的作業系統

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。版權所有 © 2024,Apache 軟體基金會。根據Apache 授權條款 2.0授權。