Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows Server 2008 R2 突破 RabbitMQ Socket 連線數限制優化吞吐量

編輯:Windows Server 常見問題解答

企業服務總線 (ESB) 整合 SAP、OA、EHR、KMS、AD 等系統透過 RabbitMQ 交換訊息,隨接入系統增加遭遇 Socket 連線數預設上限 (829) 瓶頸。透過調整 Erlang 環境變數突破限制。

問題診斷

RabbitMQ 管理介面 → Nodes → 選擇節點 → File Descriptors 區塊顯示:
sockets_limit: 829 (預設限制),sockets_used 逼近上限導致新連線失敗。

解決方案:設定 ERL_MAX_PORTS 環境變數

  1. 系統屬性 → 進階 → 環境變數 → 系統變數 → 新增:
    變數名稱:ERL_MAX_PORTS
    變數數值:65536 (或依需求設定,最大 1048576)
  2. 重啟 RabbitMQ 服務 生效 (單純重啟應用程式無效,必須重啟 Windows 服務)

驗證成果

重啟後管理介面顯示 sockets_limit 已提升至設定值 (如 65536),連線容量大幅擴充,訊息吞吐量不再受 Socket 數限制。

設定 ERL_MAX_PORTS 環境變數 重啟 RabbitMQ 服務 突破限制後 sockets_limit 顯示

此調整為 Windows 環境下 RabbitMQ 高併發部署的關鍵優化步驟,配合記憶體與磁碟水位設定可支援大規模企業級訊息總線。

Copyright © Windows教程網 All Rights Reserved