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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Context ctx = new InitialContext();

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

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

16、緩存DataSorce

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

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

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

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

互聯(lián)網(wǎng)應(yīng)用系統(tǒng)一般是并發(fā)的系統(tǒng),在每次申請(qǐ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ā)、可擴(kuò)展性的關(guān)鍵因素。下面以世界著名網(wǎng)站應(yīng)用軟件提供商CoreMediaCMS系統(tǒng)為例,進(jìn)行架構(gòu)分析

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

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

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

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

Struts、Spring、Webwork等。

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

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

19、分級(jí)存儲(chǔ)

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

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

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

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

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

一個(gè)大型網(wǎng)站,既有靜態(tài)內(nèi)容,也有動(dòng)態(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)容往往訪問速度和效率不會(huì)有較大的問題。

而動(dòng)態(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ù),將其緩存,以減少對(duì)應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器的操作次數(shù),提高用戶訪問效率和穩(wěn)定性。

21、緩存策略

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

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

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

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

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

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

免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
?
主站蜘蛛池模板: 成人女人a毛片在线看| 国产一级毛片网站| 成年女人毛片免费视频| 亚洲乱人伦在线| 国产日韩精品一区二区三区| 亚洲国产激情一区二区三区| 玖草资源在线| 亚洲最大免费视频网| 精品国语_高清国语自产| 亚洲炮网| 黄在线观看在线播放720p| 亚洲网视频| 国产精品人伦久久| 欧美精品午夜久久久伊人| 成人亚洲网站| 日本一区二区不卡视频| www.xxxx欧美| 久久国产视频网| 亚洲成人免费在线观看| 韩国精品一区二区三区四区五区| 亚洲国产精品久久网午夜| 国产精品成人影院| 欧美14videosex性欧美成人| 不卡的毛片| 免费网站看v片在线香蕉| 亚洲日本高清| 国产a级特黄的片子视频免费| 久久影视一区| 亚洲国内精品| 国产精品李雅在线观看| 日本欧美在线视频| 伊人热久久| 福利云| 久久国产精品-久久精品| 亚洲国产欧美在线成人aaaa| 国产一区不卡| 欧美日韩一区二区三区免费不卡| 在线视频观看国产| 国产成人精品一区二三区2022| 久久久毛片| 日本久久香蕉一本一道|