1. web伺服器集群可以解決高並發嗎
集群就是為了解決高並發存在的,多台機器並行處理不同用戶的同樣任務
2. 怎樣具備大規模高並發訪問的Web應用架構設計和開發經驗
理論上經驗這個東西是學不來的.
說一下我的例子.
剛入行的時候,基本就是寫了一些增刪改查.甚至session都不太理解.
隨著入行後,你會遇到各種各樣的問題.在解決問題的過程中,經驗來了.
簡單說一下所謂大規模高並發訪問的web架構吧.
其實,對於大規模高並發不外乎兩點,第一點是及時相應(盡可能優化io).第二點是數據安全.
這兩點控制的好,就沒問題的.所以,我們的架構也就圍繞在這兩點應運而生.
第一點,為了盡可能提高應用的io吞吐量.則需要我們把所有耗時的io操作盡可能的優化,比如全局使用很少更改的一些配置,則可以採用nosql來全局共享(注意,這里的全局是指伺服器集群.如果涉及到了大規模,肯定是多伺服器的).在其次可以增加伺服器緩存.比如2秒鍾從上一條的伺服器讀取配置,存到伺服器級別.以提高效率.還有線程緩存.如果業務復雜可能對一個請求需要查詢多次數據,不變的,老規矩,放到線程緩存.基本也就差不多了.
第二點,因為應用不同,要考慮容錯率.這個部分優化,可以考慮分離業務,把必須要數據安全的業務邏輯提取出來,隊列執行或者特殊處理.
剩下的就是伺服器部署與如何分配,比如多少台web伺服器,資料庫配置,內存伺服器配置等.
這只能是在實際項目和工作過程中來區別對待了.
3. hadoop適合解決web 的高並發嗎
hadoop適合處理分布式集群系統,本身是支持高速並發海量數據的寫入和讀取的。解決大量用戶並發訪問的方案有很多,給你個千萬pv的參考方案:
1)架構中直接引入軟體名稱的模塊,是個人推薦使用的,如Haproxy、Hadoop等;
2)關於全局負載均衡,看成本投入情況,可以使用商業的產品,如F5-GTM,開源方案便是自搭智能DNS;
3)本地負載均衡方案,可以考慮F5-LTM或成熟的開源解決方案LVS;
4)代理層為什麼推薦大家使用Haproxy?Haproxy是一個非常優秀的反向代理軟體,十分高效、穩定。國內top 10的互聯網公司都有在使用;
5)緩存層可以使用Squid或Varnish,個人更傾向Varnish。配置靈活、運行穩定,提供非常便利的管理介面。為啥在緩存層前面加一層代理?優點非常多,列舉如下:
根據應用配置URI路由規則,集中熱點來提高後端緩存的命中率;
輕松劃分網站頻道、版塊,更好對應用進步組織、規劃;
對URI進行一般性安全過濾,抵禦注入攻擊;
彈性調配硬體資源,應對突發事件產生大流量;
可回收寶貴的公網IP資源;
6)應用層開源技術方案非常多且成熟,在此不詳細描述;
7)資料庫層主流開源解決方案Mysql是首選,主從復制(一主對多從)是目前比較靠譜的模式;
8)關於Nosql,應用場景不多說,可參考「給部門做的Mongodb技術交流PPT」文章,redis、memcached等作為熱點數據存儲、資料庫緩存都非常理想;
9)內網DNS扮演的角色非常重要,一定要消滅code中出現的內網IP地址,很大程度減少因IP變更、伺服器故障而修改源碼的情況,同時也便於維護;
10)內網LB適用在內部WEB介面、多台資料庫Slave、多台Nosql Slave、公共服務等應用的負載均衡,可以使用LVS、Haproxy來實現,可用性要求不高的應用可行直接使用Localhost DNS輪詢;
11)hadoop適合海量數據的存儲與處理,如做網站日誌分析、用戶數據挖掘等;
12)管理集群,平台的核心,運維的陣地;
4. 常用的web伺服器軟體有哪些
1.IIS
IIS是英文Internet Information Server的縮寫,譯成中文就是"Internet信息服務"的意思。它是微軟公司主推的伺服器,最新的版本是Windows2008裡麵包含的IIS 7,IIS與Window Server完全集成在一起,因而用戶能夠利用Windows Server和NTFS(NT File System,NT的文件系統)內置的安全特性,建立強大,靈活而安全的Internet和Intranet站點。
2.ApacheApache
ApacheApache在世界上的排名是第一的,它可以運行在幾乎所有廣泛使用的計算機平台上。Apache源於NCSAhttpd伺服器,經過多次修改,不僅簡單、速度快、而且性能穩定,還可以用來做代理伺服器。
3.Nginx
Nginx不僅是一個小巧且高效的HTTP伺服器,也可以做一個高效的負載均衡反向代理,通過它接受用戶的請求並分發到多個Mongrel進程可以極大提高Rails應用的並發能力。
4.Zeus
Zeus是一個運行於Unix下的非常優秀的Web Server,據說性能超過Apache,是效率最高的Web Server之一。
5.Sun
Sun的Java系統Web伺服器也就是以前的Sun ONE Web Server。主要出現在那些運行Sun的Solaris操作系統的關鍵任務級Web伺服器上。它最新的版本號是6.1,可以支持x86版本Solaris,Red Hat Linux,HP-UX 11i, IBM AIX,甚至可以支持Windows,但它的大多數用戶都選擇了SPARC版本的Solaris操作系統。
5. 如何搭建一個高並發的web框架
1、提供HTML靜態訪問
web界面上最快的訪問速度是什麼?當然是最原始的HTML文件訪問,對於其他語言 比如 jsp ,asp,php等等,他們首先要通過伺服器解析成html之後在返回給訪問者,如果我們能提供全部是htm來的頁面,那麼就能大大的降低伺服器和資料庫資源的利用和提高網站的並發,所以我們盡可能使我們的網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。當然實現這種方式大家比較了解的就是信息發布系統CMS,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
在後續的文章中我們會單獨的使用jsp + servlet實現一個簡單的信息發布系統.
2、使用獨立的圖片伺服器
為什麼要把圖片單獨設置一個伺服器?對於Web伺服器來說,圖片消耗的伺服器資源是最多的,如果能把所有的圖片資源放到一個單獨的圖片伺服器中進行處理的話,可以降低提供頁面訪問請求的伺服器系統壓力,從而能進一步的提高web程序的並發.所以在有條件的情況下最好能把圖片放置到一個單獨的伺服器中.
3、配置多台資料庫伺服器,多個資料庫集群
集群(Cluster)技術是使用特定的連接方式,將價格相對較低的硬體設備結合起來,同時也能提供高性能相當的任務處理能力。
越是大型高並發的應用,資料庫的壓力就會越大,如果資料庫操作很頻繁,資料庫的瓶頸很快就能顯現出來,這時一台資料庫將很快無法滿足應用,於是我們需要使用資料庫集群。
資料庫集群就是使用多個資料庫伺服器分擔請求的壓力,達到快速響應的目的.
4、使用緩存
所謂的緩存就是把數據咱是放置到內存中,前台在請求的時候直接從內存中讀取數據,而不需要去查詢資料庫或者讀取文件等,這樣就能做到最快的響應。網站架構和網站開發中的緩存是非常重要的。
目前有很多開源的緩沖實現方案,APC,File,SQLite,Memcache等等各種類庫實現著不同的緩存方式,只有通過了解他們的實現方式,根據具體應用具體選擇,才會使緩存系統發揮出最大的性能。
對於java開發來說,大名頂頂的 分布式緩存系統Memcache 可能是最好的選擇,他提供一個基於Socket的訪問方式,使得該緩存系統支持遠程讀寫訪問。盡管這個緩存的內容可能是存在內存中,也可能是存在文件內。
6. javaweb如何解決高並發
你指的高並發量大概有多少?
幾點需要注意:
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
用jprofiler等工具找出性能瓶頸,減少額外的開銷。
優化資料庫查詢語句,減少直接使用hibernate等工具的直接生成語句(僅耗時較長的查詢做優化)。
優化資料庫結構,多做索引,提高查詢效率。
統計的功能盡量做緩存,或按每天一統計或定時統計相關報表,避免需要時進行統計的功能。
能使用靜態頁面的地方盡量使用,減少容器的解析(盡量將動態內容生成靜態html來顯示)。
解決以上問題後,使用伺服器集群來解決單台的瓶頸問題。
基本上以上述問題解決後,達到系統最優。
至於樓上有人提到別用JAVA來做,除非是低層的連接數過大(如大量的埠佔用需求),這種情況下考慮直接C來寫,其他的可以用JAVA來做。
7. web應用高並發導致系統資料庫崩潰一般怎麼解決
1、程序和資料庫部署在同一台伺服器上 2.多學習一些相關的書籍比如:構建高性能Web站點,大規模Web服務開發技術 構建可擴展的Web站點 , Web容量規劃的技術,分布式資料庫系統及其應用。 掌握其原理和結構 。
8. web伺服器的解決方案有哪些
目前主流web伺服器有三個:apache、IIS、nginx。
其中apache是開源的老牌伺服器,多用於傳統業務,其優點是系統穩定,擴展模塊豐富,各種特性支持完整,並且跨平台。
IIS是微軟主力打造的web伺服器,目前作為Windows系統組件一部分,和微軟上層web開發(asp.net)應用介面緊密。
nginx是開源的後起之秀,是俄羅斯開發的一款用於高並發服務的web伺服器,主要應用於高並發網站、靜態伺服器、下載伺服器等,其優點是性能更高,支持負載均衡,反向代理。
國產web伺服器主要有:
Tengine:是淘寶開發團隊基於nginx修改的,優化了資源請求的web伺服器,其特點繼承nginx,並針對資源請求做了優化。
數蠶web伺服器:是數蠶科技基於c++的Linux下的web伺服器,主要用於靜態頁面和簡單的計算型服務網站。其特點是支持高並發,支持多進程,c++/c介面良好,支持直接基於C++模板開發。
9. web伺服器和web框架的區別
區別還是挺大的,工種和編程思想都不一樣,下面還是闡述一下:
1)前端開發人員:精通JS,能熟練應用JQuery,懂CSS,能熟練運用這些知識,進行交互效果的開發。
2)後端開發人員:會寫Java代碼,會寫SQL語句,能做簡單的資料庫設計,會Spring和iBatis,懂一些設計模式等。
Web前端:
1)精通HTML,能夠書寫語義合理,結構清晰,易維護的HTML結構。
2)精通CSS,能夠還原視覺設計,並兼容業界承認的主流瀏覽器。
3)熟悉JavaScript,了解ECMAScript基礎內容,掌握1~2種js框架,如JQuery
4)對常見的瀏覽器兼容問題有清晰的理解,並有可靠的解決方案。
5)對性能有一定的要求,了解yahoo的性能優化建議,並可以在項目中有效實施。
Web後端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,Flex開發,或者對相關的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發的模式有較深的理解
2)練使用oracle、sqlserver、mysql等常用的資料庫系統,對資料庫有較強的設計能力
3)熟悉maven項目配置管理工具,熟悉tomcat、jboss等應用伺服器,同時對在高並發處理情況下的負載調優有相關經驗者優先考慮
4)精通面向對象分析和設計技術,包括設計模式、UML建模等
5)熟悉網路編程,具有設計和開發對外API介面經驗和能力,同時具備跨平台的API規范設計以及API高效調用設計能力
側重點不一樣,看個人喜好選擇職業啦。
10. 最高並發量1萬的WEB伺服器配置
額,其實吧,單台都可以帶起來的,比如你買個浪潮NF5230M3來著,具體型號我忘了,伺服器配置上去了,其他無壓力