構(gòu)建高效的企業(yè)級(jí)Java應(yīng)用系列(一)架構(gòu)篇——4
4:數(shù)據(jù)和處理程序要盡可能靠近為什么要使這二者盡可能的靠近?其實(shí)數(shù)據(jù)存放在哪里,離處理程序有多遠(yuǎn)并不會(huì)產(chǎn)生什么問(wèn)題。但是一旦當(dāng)我們需要使用數(shù)據(jù)的時(shí)候,每次都通過(guò)網(wǎng)絡(luò)獲取數(shù)據(jù)成本顯得過(guò)高。所以需要將處理程序和數(shù)據(jù)盡可能的靠近,以減少或避免數(shù)據(jù)來(lái)回相傳輸?shù)拈_(kāi)銷(xiāo)。
使它們靠近的方法無(wú)非就是那么兩種:要么讓數(shù)據(jù)靠近處理程序(通過(guò)在處理程序附近緩存數(shù)據(jù)——中間件技術(shù));要么讓處理程序靠近數(shù)據(jù)(在數(shù)據(jù)附近進(jìn)行處理——存儲(chǔ)過(guò)程實(shí)現(xiàn))。
至于使用哪種方式或者兩者結(jié)合,來(lái)減少數(shù)據(jù)傳輸開(kāi)銷(xiāo)則需要視情況而定。例如,有時(shí)候數(shù)據(jù)不能到達(dá)處理程序的時(shí)候,就需要將處理程序靠近數(shù)據(jù)庫(kù)(具體實(shí)現(xiàn)表現(xiàn)為:使用SQL語(yǔ)言的所有功能,包括聚集函數(shù)、存儲(chǔ)過(guò)程)。這種方法與“將相關(guān)邏輯放在會(huì)話(huà)bean中”形成了對(duì)比,并且這種方式嚴(yán)重依賴(lài)于數(shù)據(jù)庫(kù)提供商,當(dāng)對(duì)于不同產(chǎn)品數(shù)據(jù)庫(kù)的可移植性格外在乎時(shí),這將是非常麻煩的一件工作。無(wú)論如何將二者盡可能的綁定在一起,都會(huì)是處理時(shí)必要產(chǎn)生的通信最小化,也能避免跨越網(wǎng)絡(luò)移動(dòng)數(shù)據(jù)的開(kāi)銷(xiāo)。
posted on 2007-04-16 23:56 萬(wàn)博 閱讀(191) 評(píng)論(0) 編輯 收藏