在Web應用中圖片和長文本的處理策略總結

來源:互聯網
上載者:User
web|策略  不難認識到,在web應用中圖片/多媒體和長文體的處理策略,很大程度上決定中一個系統的效能和負載能力。
    這幾天在處理圖片上傳的同時,也在考慮著最合理的對圖片和長文本的儲存。多年前,我喜歡把圖片和長文本都存進oracle中,目的是備份方便,只需要 exp就可以連圖片一起備分起來,不用一個個地照顧目錄。但是缺點也隨著訪問量上升而一點點顯示出來:一來是大大加重了資料庫伺服器的負擔;二來使用 BLOG/CLOG並不是SQL92支援的標準SQL,令開發持久性的對象變得複雜;其三,oracle並不是一個適合隱藏檔的資料庫,象他的 varchar2隻能支援四千個字元,而使用CLob就不能直接使用sql顯示;顯然,mysql是更合適的檔案資料庫;它的text好象到現在還沒有發現儲存極限,而且完全可以使用標準的SQL讀取和搜尋。對於圖文資料來說,事務並不重要,方便的查詢和速度(意味著低負載)更為重要,反而是把它升級使用 BerklneyDB,添加交易回復等,變得畫虎不成反類犬。而oracle,應該讓它專著於商務型的事務可靠性要求高的場合。    有朋友認為,長文本和圖片都應該放在資料庫以外,通過串連引用,我覺得對於mysql來說,它本身基本上就是一個圖文檔案系統,帶有一個sql介面,所以文本沒有必要存到外邊,放在mysql中最合適。而圖片,需要特別的BLOG處理,不能使用標準SQL,就應該放在資料庫外面,減少系統的負擔。     今天的資料庫使用和開發模式實際上是一步步走向物件導向的儲存和處理,這點特別是在JAVA(是中介軟體的主要工作語言)上表現得非常突出,無論是J2ee 還是Hibernate,還是我自已搞的dao/Processor,都是把java對象池看作是資料庫物件向語言平台的延伸,直接物件導向的儲存代替了通過SQL訪問具體資料。儘管資料對象本身還是以關係結構的形式存在資料庫中的,但它的細節被java對象的自動初始化隱藏起來。因此,儘可能令儲存方式標準化(不要採用獨特的儲存方式)可以大幅度提高效能,簡化資料對象化的程式,實際上提高了它的可靠性。正因如此,圖片儲存在檔案系統而不是以二進位存在資料庫中,是更合理的選擇。      現在我的web平台主要是採用apache_catalina,這個平台在幾年前使用後,很長一段時間沒有使用了,實際上,它不但多變,而且文檔極其缺乏 ——甚至於我現在還找不到server.xml中的Context對象屬性的定義說明。當初把apache通過ajp13連繫在一起,據說是因為 apache處理靜態檔案的能力遠強於tomcat,但我一直不明白,它如何識別什麼檔案該阿帕奇,什麼檔案該tomcat?事實上我想最關鍵的檔案是 worker.properties

info=Ajp13 forwarding over sockettomcatId=localhost:8009[uri:/jsp-examples/*][shm:]disabled=1

如果象上面那樣uri:/jsp-examples/*的話,相信,apache屁用沒有,根本上就是tomcat承受了一切的負擔。 顯然,如果是這樣配置,系統承受的負擔,我指的是java 伺服器,將是大大超出應有的負荷的。應該修改上面的配置,讓apache承但,主要是html和圖片以及多媒體的下載任務,而不是tomcat,估計可以大大提供這個搭配系統的負載能力。

......前天寫到這裡,忽然覺得這個配置頗為眼熟,趕快去查一下,果然現在的項目中的設定就是這個樣子的,但是進一步的測試就讓我有點入歧途,一會兒證明是那樣,一會兒就表明是那樣。軟體這東西如果缺乏邏輯必然的聯絡,人是沒有什麼好乾的。無論如何,繼續上面的思路,象上面的配置,表明所有/jsp- examples/*次級目錄下的東東都是交由tomcat處理;Apache並沒有相應的工作。正確的配置應該是:[uri:/jsp-examples/*.jsp][uri:/jsp-examples/servlet/*]

如果使用了如struts,大概還需要增加*.action這樣的尾碼。這樣,非此類型的檔案將會交給apache。而這樣的設定:[uri:/*] 有極大的危險,將意味著所有的請求全部由tomcat響應;不過,看來ajp13作了預防性措施,事實上,這時侯ajp13把所有請求扔進了下水道,什麼也不幹。負作用就是虛擬機器主機的根目錄我無論如何設不出它能夠直接識別index.jsp引導。只能使用html代替,不過,這也沒有什麼大不了的,如果是小型的首頁,可以就地轉向,而假如是大型的首頁,本身就會定時轉換輸出為html頁面。

顯然,在這種結構中使用萬用字元是最容易配出運行架構的,卻也是錯誤的。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。