我有哪裏的消息保持每小時70K個XML的速度來的應用程序。我們使用這些XML消息並將其存儲到中間隊列中。創建中間隊列是因爲我們需要滿足在24小時內消費所有消息的SLA。我們能夠在24小時內將XMLS消費並加載到內部隊列中。在將其加載到內部隊列後,我們處理XMLS(解析,應用很少的轉換,執行很少的驗證)並將數據存儲到嚴格標準化的數據模型。我知道數據模型會對性能產生巨大影響,但不幸的是,我們無法控制數據模型。目前,我們花費3.5分鐘處理2K消息,這是不可接受的。我們希望將它降至1分鐘以獲得2K消息。下面是我們迄今所做的:如何提高基於MQ的批處理應用程序的性能?
1)應用指標(如適用)。
2)使用XMLBeans用於解析個XML(大小每個XML不是很龐大)
3)移除所有不必要的驗證,transformatios等
的應用上運行:
操作系統:RHEL 5.4 64位
平臺:JDK 1.6.0_17中,64位
數據庫:的Oracle 11g R2的64位(2節點羣集)
外部MQ:IBM隊列
內部的臨時存儲MQ:JBoss的MQ
應用服務器:Jboss的5.1。 0.GA(EAP版)
中,我們消耗和處理XML消息的順序是非常重要的,所以我們不能做並行處理。
還有什麼事情我們可以做,以提高性能?
正如您所說,MQ Websphere的性能非常好。您提到的問題在嘗試處理消息時發生。目前,我們沒有奢侈的重新發布信息,所以我們堅持1張單獨發帖。所以看起來像我陷入了沒有更多的額外道路。在硬件上花錢也是一樣。我會嘗試在每個消息處理中引入並行性。無論如何,只是想確保我已經覆蓋了一切。 – SJoe 2011-06-03 14:44:40