www涩-www黄网站-www黄色-www黄色com-国产免费拍拍视频在线观看网站-国产免费怕怕免费视频观看

java學(xué)習(xí)-如何用Java進(jìn)行高性能網(wǎng)站開發(fā)

2018-05-03 09:41:38 智能互動  點擊量:897 評論 (0)
如何用Java進(jìn)行高性能網(wǎng)站開發(fā),本文給大家梳理了一下

戶,主要用于低并發(fā)請求,大數(shù)據(jù)量傳輸?shù)膽?yīng)用。

第二類:本機API,部分是Java的驅(qū)動程序。

第二類JDBC驅(qū)動程序是本機API的部分Java代碼的驅(qū)動程序,用于把JDBC調(diào)用轉(zhuǎn)換成主流數(shù)據(jù)庫API的本機調(diào)用。這類驅(qū)動程序也存在與第一類驅(qū)動程序一樣的性能問題,即客戶端載入二進(jìn)制代碼的問題,而且它們被綁定了特定的平臺。

第二類驅(qū)動程序要求編寫面向特定平臺的代碼,主流的數(shù)據(jù)庫廠商,例如Oracle和IBM,都為它們的企業(yè)數(shù)據(jù)庫平臺提供了第二類驅(qū)動程序,使用這些驅(qū)動程序的開發(fā)者必須及時跟進(jìn)不同數(shù)據(jù)庫廠商針對不同操作系統(tǒng)發(fā)行的各個驅(qū)動程序版本。

另外,由于第二類驅(qū)動程序沒有使用純Java的API,把Java應(yīng)用連接到數(shù)據(jù)源時,往往必須執(zhí)行一些額外的配置工作。很多時候,第二類驅(qū)動程序不能在體系結(jié)構(gòu)上與大型主機的數(shù)據(jù)源兼容;即使做到了兼容,效果也是比較差。

第一類和第二類驅(qū)動的比較

第一類和第二類驅(qū)動的比較

第三類:面向數(shù)據(jù)庫中間件的純Java驅(qū)動程序

第三類JDBC驅(qū)動程序是面向數(shù)據(jù)庫中間件的純Java驅(qū)動程序,JDBC調(diào)用被轉(zhuǎn)換成一種中間件廠商的協(xié)議,中間件再把這些調(diào)用轉(zhuǎn)換到數(shù)據(jù)庫API。第三類JDBC驅(qū)動程序的優(yōu)點是它以服務(wù)器為基礎(chǔ),也就是不再需要客戶端的本機代碼,這使第三類驅(qū)動程序要比第一、二兩類快。另外,開發(fā)者還可以利用單一的驅(qū)動程序連接到多種數(shù)據(jù)庫。

第四類:直接面向數(shù)據(jù)庫的純Java驅(qū)動程序。

第四類JDBC驅(qū)動程序是直接面向數(shù)據(jù)庫的純Java驅(qū)動程序,即所謂的“瘦”(thin)驅(qū)動程序,它把JDBC調(diào)用轉(zhuǎn)換成某種直接可被DBMS使用的網(wǎng)絡(luò)協(xié)議,這樣,客戶機和應(yīng)用服務(wù)器可以直接調(diào)用DBMS服務(wù)器。對于第四類驅(qū)動程序,不同DBMS的驅(qū)動程序不同。因此,在一個異構(gòu)計算環(huán)境中,驅(qū)動程序的數(shù)量可能會比較多。但是,由于第四類驅(qū)動程序具有較高的性能,能夠直接訪問DBMS,所以這一問題就不那么突出了, 這種驅(qū)動方式,主要用于高并發(fā),低數(shù)據(jù)量請求的應(yīng)用中。

第三類和第四類驅(qū)動的比較

第三類和第四類驅(qū)動的比較

為了提高訪問數(shù)據(jù)庫的性能,我們還可以使用JDBC 2.0的一些規(guī)范和特性,JDBC是占用資源的,在使用數(shù)據(jù)庫連接時可以使用連接池Connection Pooling,避免頻繁打開、關(guān)閉Connection。而我們知道,獲取Connection是比較消耗系統(tǒng)資源的。

Connection緩沖池:當(dāng)一個應(yīng)用程序關(guān)閉一個數(shù)據(jù)庫連接時,這個連接并不真正釋放而是被循環(huán)利用,建立連接是消耗較大的操作,循環(huán)利用連接可以顯著的提高性能,因為可以減少新連接的建立。

一個通過DataSource獲取緩沖池獲得連接,并連接到一個CustomerDB數(shù)據(jù)源的代碼演示如下:

Context ctx = new InitialContext();

DataSource dataSource = (DataSource) ctx.lookup("jdbc/CustomerDB");

Connection conn = dataSource.getConnection("password","username");

16、緩存DataSorce

一個DataSource對象代表一個實際的數(shù)據(jù)源。這個數(shù)據(jù)源可以是從關(guān)系數(shù)據(jù)庫到表格形式的文件,完全依賴于它是怎樣實現(xiàn)的,一個數(shù)據(jù)源對象注冊到JNDI名字服務(wù)后,應(yīng)用程序就可以從JNDI服務(wù)器上取得該對象,并使用之和數(shù)據(jù)源建立連接。

通過上面的例子,我們知道DataSource是從連接池獲得連接的一種方式,通過JNDI方式獲得,是占用資源的。

為了避免再次的JNDI調(diào)用,可以系統(tǒng)中緩存要使用的DataSource。

及時關(guān)閉使用過的資源

互聯(lián)網(wǎng)應(yīng)用系統(tǒng)一般是并發(fā)的系統(tǒng),在每次申請和使用完資源后,應(yīng)該釋放供別人使用,使用完成后應(yīng)該保證徹底的釋放。

17、架構(gòu)選型

在網(wǎng)站W(wǎng)eb應(yīng)用開發(fā)中,系統(tǒng)的整體架構(gòu)是決定網(wǎng)站性能、穩(wěn)定性、并發(fā)、可擴展性的關(guān)鍵因素。下面以世界著名網(wǎng)站應(yīng)用軟件提供商CoreMediaCMS系統(tǒng)為例,進(jìn)行架構(gòu)分析

CoreMediaCMS將整個應(yīng)用分成四成架構(gòu),每一層都可以獨立于其他層而正常運行,每一層都可以分布式布署,極大的提高了應(yīng)用系統(tǒng)的穩(wěn)定性、可擴展性、支持高并發(fā)的要求,每一次之前通過中間件Corba進(jìn)行穩(wěn)定的傳輸數(shù)據(jù)。

18、開發(fā)框架的選型

充分利用開源框架,可以大大提高開發(fā)效率。很多初級開發(fā)者,都采用DB+JavaBean+JSP這種初級的開發(fā)模式,而現(xiàn)在主要使用Struts、Spring等MVC開發(fā)框架。

常用開發(fā)框架構(gòu)選型有:

Struts、Spring、Webwork等。

我們選擇的開發(fā)框架是:Spring+Hibernate+Spring MVC,在這個開發(fā)框架里,充分利用了Hibernate、Spring各自己的優(yōu)點,可以選擇Struts,也可以選擇Spring MVC。

如果想學(xué)習(xí)Java可以來這個群,首先是一二六,中間是五三四,最后是五一九,里面有大量的學(xué)習(xí)資料可以下載。

19、分級存儲

1)數(shù)據(jù)庫數(shù)據(jù)分級存儲:

將經(jīng)常訪問的數(shù)據(jù)和訪問頻度低的數(shù)據(jù),分別存放到不同的分區(qū),甚至存放到不同的數(shù)據(jù)庫服務(wù)器,以便合進(jìn)分配硬盤I/O及系統(tǒng)I/O。

2)網(wǎng)站內(nèi)容發(fā)布之后,分級存儲:

任何一個大型的網(wǎng)站,一般都有海量的內(nèi)容,為了提高訪問效率,應(yīng)搭建分級存儲體系,根據(jù)應(yīng)用的重要性和訪問并發(fā)要求,將這些內(nèi)容分級存儲,同時將靜態(tài)內(nèi)容中的靜態(tài)頁面文件、圖片文件、下載文件分不同的Web服務(wù)器訪問,降低I/O爭用,提高訪問效率,同時讓數(shù)據(jù)存儲、管理、備份更加清晰。

20、頁面靜態(tài)化

一個大型網(wǎng)站,既有靜態(tài)內(nèi)容,也有動態(tài)內(nèi)容。靜態(tài)內(nèi)容,直接通過Apache或者Squid訪問,效率高,穩(wěn)定可靠,更多的是受服務(wù)器等硬件設(shè)備的I/O吞吐量、網(wǎng)絡(luò)環(huán)境及頁面代碼本身質(zhì)量限制,不受應(yīng)用系統(tǒng)及數(shù)據(jù)庫性能限制,這些內(nèi)容往往訪問速度和效率不會有較大的問題。

而動態(tài)內(nèi)容,除了受硬件設(shè)備I/O、操作系統(tǒng)I/O及內(nèi)容、網(wǎng)絡(luò)環(huán)境及頁面代碼的影響,還要受應(yīng)用服務(wù)器和數(shù)據(jù)庫性能影響,因此,這部份內(nèi)容,要盡可能作靜態(tài)化或者偽靜態(tài),并采用緩存技術(shù),將其緩存,以減少對應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的操作次數(shù),提高用戶訪問效率和穩(wěn)定性。

21、緩存策略

對于構(gòu)建的業(yè)務(wù)系統(tǒng),如果有些數(shù)據(jù)要經(jīng)常要從數(shù)據(jù)庫中讀取,同時,這些數(shù)據(jù)又不經(jīng)常變化,這些數(shù)據(jù)就可以在系統(tǒng)中緩存起來,使用時直接讀取緩存,而不用頻繁的訪問數(shù)據(jù)庫讀取數(shù)據(jù)。

緩存工作可以在系統(tǒng)初始化時一次性讀取數(shù)據(jù),特別是一些只讀的數(shù)據(jù),當(dāng)數(shù)據(jù)更新時更新數(shù)據(jù)庫內(nèi)容,同時更新緩存的數(shù)據(jù)值。

例如:在天極CMS2005系統(tǒng)中,我們將很少發(fā)生變化的網(wǎng)站節(jié)點樹數(shù)據(jù),緩存在客戶端,當(dāng)用戶登錄時,一次性讀入到客戶端緩存起來,以后編輯在使用時,不用再從數(shù)據(jù)庫中讀取,大大提高了應(yīng)用系統(tǒng)的訪問速度。

當(dāng)然,也可以將數(shù)據(jù)庫中重復(fù)訪問的數(shù)據(jù)緩存在應(yīng)用服務(wù)器內(nèi)存中,減少對數(shù)據(jù)庫的訪問次數(shù),Java常用的緩存技術(shù)產(chǎn)品有:MemoryCache、OSCache等。

大云網(wǎng)官方微信售電那點事兒

責(zé)任編輯:售電衡衡

免責(zé)聲明:本文僅代表作者個人觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
我要收藏
個贊
?
主站蜘蛛池模板: 国产一级二级三级毛片 | 久久国产精品视频 | 国产欧美日韩在线不卡第一页 | 欧洲亚洲一区二区三区 | 女人毛片a毛片久久人人 | 国产日韩欧美 | 两性色午夜视频免费国产 | 亚洲精品一区二区三区四区手机版 | 一级毛片q片| 日本免费的一级绿象 | 午夜毛片不卡高清免费 | 一区二区成人国产精品 | 女人张开腿让男人捅爽 | 欧洲欧美成人免费大片 | 久久在线免费 | 国产精品国产三级国产专区5o | 亚洲免费区 | 日本天堂网在线 | 欧美午夜免费毛片a级 | 亚洲乱码国产一区网址 | 美女视频大全视频a免费九 美女视频大全网站免费 | 久久国产精品久久久久久 | 欧美成人全部费免网站 | 成年人在线观看免费 | 九九99九九视频在线观看 | 91玖玖| 久久伊人成人网 | 久久精品免费观看视频 | 国产大片在线看 | 又黄又湿又爽吸乳视频 | 成人一级黄色毛片 | 久草视频观看 | 亚洲男人天 | 亚洲日韩视频 | 国产亚洲欧美日韩在线观看一区二区 | 久久99精品视免费看 | 91精品成人免费国产片 | 91精品国产9l久久久久 | 久久久久久免费精品视频 | 国产视频97| 亚洲欧美日韩国产综合高清 |