2011-05-26 147 views
0

我們有一個主要用於在兩個盒子之間進行通信的JMS服務器(Tibco),它們在兩個盒子上運行,基本上讀取輸入XML,處理它並將它們轉換爲平面文件。 ,將會有30個平面文件(平面文件合計大小從1MB到10MB不等)。在輔助框上運行的進程需要將文件傳輸到主服務器。有兩種選擇我見式將文件從一個服務器複製到另一個服務器

  1. SCP-Secure的副本將通過使SCP連接(通過shell腳本執行)複製30個平面文件 。
  2. 發送文件作爲JMS消息。在主要情況下,JMS接收器程序 將讀取這些文件並將平面文件與其他平面文件合併。

您認爲哪個選項「更好」?如果次級箱子發出500 SCP /小時,SCP會出現問題嗎?第二種選擇是,JMS服務器將在某個臨時位置存儲平面文件嗎?

謝謝

回答

1

我決定投票給SCP解決方案。 JMS將是一個傳輸文件的矯枉過正。使用JMS,您需要將文件讀入內存,將其放入JMS消息中,以serlialized形式通過網絡傳輸(這可能會導致更大的數據大小),然後將其反序列化,然後再將其保存到文件中。另外,如果您的JMS隊列被配置爲持久性的,它也會將消極的存儲開銷添加到您的消息處理中。所有這些序列化/反序列化/容易理解都會給JVM的垃圾收集器帶來壓力,這可能會影響性能。

編輯:通過SCP解決方案,您基本上可以將文件數據從一臺服務器傳輸到另一臺服務器。所以,幾乎沒有內存開銷。雖然每小時轉換30個10MB總共500個文件的文件會給你5Gb一個小時,這是很多。它給你約。每秒1.3Mb。你有這樣的帶寬嗎?

但是,另一種解決方案可以是僅按需傳輸文件。例如,只有在收到JMS時​​才啓動傳輸。您可以使用JSCH庫來執行實際傳輸,而不是使用shell腳本。

相關問題