一個(gè)具有一定知名度的網(wǎng)站,面對的問(wèn)題無(wú)非是:穩定的性能、海量訪(fǎng)問(wèn)、海量數據。
優(yōu)秀的website architecture應該良好的解決上述問(wèn)題,那么Terry認為應該熟悉或了解下面的技術(shù):
- 開(kāi)發(fā)語(yǔ)言架構:應該至少熟悉一種web開(kāi)發(fā)語(yǔ)言,包括java、web、python、ror等,然后采用比較穩健的、成熟的開(kāi)發(fā)語(yǔ)言架構
- 單點(diǎn)登陸
- 自建session server,類(lèi)似discuz的passport的方案
- 目前常用的是cas sso解決方案
web服務(wù)器集群: - 負載均衡:軟件比如keepalived,ultramokey.硬件如四層交換機;
- web服務(wù)器集群方案:常用lvs
- web服務(wù)器選型:apache、Nginx、lighttpd
- 其他服務(wù)器-如java 應用服務(wù)器的集群部署;
利用緩存: - 頁(yè)面靜態(tài)化規則,頁(yè)面緩存;緩存軟件:squid,oscache,等
- 常用數據緩存解決方案,緩存數據命中率
- 如果采用ORM,考慮采用二級緩存
ajax:避免頁(yè)面全局刷新,提高用戶(hù)體驗;合理使用,避免泛濫。 數據庫 - 集群數據庫
- 如果數據庫采用mysql,那么一般是master-slave,對master進(jìn)行寫(xiě)入或更新數據,對slave進(jìn)行數據的查詢(xún)。如果使用 hibernate那么,使用native sql太動(dòng)態(tài)綁定不同的數據庫表。復雜一些可以研究一下Hibernate Shards,這是google捐獻給hibernate的項目的。
- oracle數據庫集群,可以采用磁盤(pán)陣列方式,oracle部署在幾個(gè)服務(wù)器上,表和數據文件放在磁盤(pán)陣列上
做好備份策略 分清不同數據的生命周期。根據不同的生命周期,做好數據的歸檔/轉存的工作 商業(yè)數據存儲首選大型商業(yè)數據庫,其他數據可以用mysql等開(kāi)源數據庫。 搜索引擎: - 常用的技術(shù)選型是lucene ,另外有ferret,Sphinx。
- 分布式存儲和分布式查詢(xún)
- 中文分詞
網(wǎng)絡(luò )蜘蛛: - 知道如何抓取別人網(wǎng)站的網(wǎng)頁(yè)
- 懂得如何屏蔽未知或部分蜘蛛訪(fǎng)問(wèn)你的網(wǎng)站
seo 關(guān)注互聯(lián)網(wǎng)業(yè)內的情況 - facebook的f8是啥回事
- google的產(chǎn)品和api,了解Google Maps API、OpenSocial API、Google Apps等等
- 找到sns,blog,wiki等web2.0的技術(shù)表現形式
- guice、google toolkit、Android
- 關(guān)注新冒出來(lái)一些網(wǎng)站的情況
- 研究和分析知名網(wǎng)站的架構
- 跟蹤一些知名技術(shù)專(zhuān)家的文章或blog
- 適當的參加一些技術(shù)或互聯(lián)網(wǎng)聚會(huì )和話(huà)題討論
了解比較新的一些技術(shù)概念,如soa、esb、云計算、MapReduce、BigTable、Google