本來很早就想與朋友們一起分享下自己在開發易訊網過程中對網站架構和設計和 " /> 视频成人,国产区成人精品视频,午夜动态

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

淺談易訊網架構

經歷了最近幾個月易訊網新版本的緊張開發及上線調試之后,總算能夠暫時靜下心來考慮網站的下一步計劃及如何通過網絡來如何吸引用戶。

本來很早就想與朋友們一起分享下自己在開發易訊網過程中對網站架構和設計和經驗和看法,但那時因為上一版本許多東西還欠缺考慮只好做罷。現在,終于有時間能夠分享下自己的經驗并大家交流和探討。

什么是易訊網(econfeed.com)?如果您知道國外的DIGG網站,那么您也就知道了什么是易訊網。它是分享互聯網資訊內容的社交網站。創建易訊網的靈感就源自于DIGG網站,而我那時也想自己開發個社區型的網站以積累和了解網站架構方面的經驗。

平臺

ASP.NET(.NET framework 3.5)
Sql Server 2005
Windows Service
.NET Task Service - 作業計劃服務
TaskFarmer - 分布式的任務系統服務
Lucene.NET
Memcached
Arachnode.NET - .NET下的搜索引擎,基于Lucene搜索


下面這張圖能夠描述易訊網內部如何運作。

 

易訊網架構

如何創建一個好的架構一直是一件讓人頭疼差事,因為您必須要考慮許多因素,包括性能,可擴展性,穩定性等以及如何從這中間取一個平衡點。

網站邏輯架構

易訊網的 網站邏輯架構依照了CS(Community Service)的架構,特別是采用模塊(插件),皮膚的方式。我一直是CS架構的擁護者,從最早的ASPNETForums到現在的Community Service。易訊網最初版本是采用CS的數據庫,雖然它的數據庫設計為應用程序提供了很大的擴展性,但也犧牲了性能為代價,以至后來性能成為問題,不 得不放棄完全按自己網站的需求來設計。
下面這張是網站的配置和設計邏輯圖。

 

易訊網站邏輯架構

網站的性能優化

網站的性能的優化主要有針對的從幾個大的方面進行優化。

1.  ASP.NET

一篇很有幫助的文章:10個ASP.NET性能和可擴展性的秘密

2. 壓縮頁面文件大小

壓縮文件的大小是減少帶寬的使用以及用戶的瀏覽體驗。
1.主要使用HttpModule的方式壓縮頁面文件大小。
2.針對不需要回發的頁面移除了Form表單標簽和ViewState。
3. 改善了控件自動生產的ID。如果您是個有心人,您會發現在登錄頁控件呈現的ID名稱是“S1_S1_S1_S5_S2_S1_S1_S2”,而原本應該呈 現的內容大概是:"Ctr1_Ctrl1_SiteMaster_MainContainer_Ctrl1_TxtLogin“(當然,真正呈現的要比這 個長,這里只是做個假設,它應該是總共帶8個控件編號,這也是我為什么不喜歡ASP.NET的一個原因)。如果您也想壓縮控件ID,您可以參考這篇文章:改善控件的自動生成的ID

3. 壓縮CSS,JS,Image

圖像壓縮的方式您只有一種選擇,使用圖像工具。笑。
我使用YUI Compressor來壓縮CSS,JS。因為我覺得它在準確率和壓縮率在所有一些壓縮工具中是最好的一個。

4. 緩存

合理的使用瀏覽器緩存和應用程序緩存是關鍵。針對用戶頭像,新聞的略縮圖使用瀏覽器緩存。關于圖像及略縮圖,關于采用略縮圖的原則將會在后面提到。

網站的緩存使用

采用緩 存主要還是為了減輕數據庫IO的壓力以及提高網站的性能。可以說,緩存的使用在易訊網中無所無在。易訊網采用是分布式緩存與本地緩存以及線程緩存相結合的 策略。像配置的基本采用本地文件依賴緩存。但是一些更頻繁使用的數據采用的分布式緩存>>本地緩存方式。
易訊網采用的是 Memcached做為分布式的緩存服務。網站的大部分緩存都是采用分布式緩存的方式緩存數據。根據需求,我將數據緩存分成二類,一類是基本不會更新數 據,像新聞內容,一類是時時可能會變化的數據,像新聞統計。因此,對新聞的緩存將獨立分成二份,一份是基本信息的緩存,一份是統計的緩存。假設現在您為某 個資訊提交新的評論或者投票的時候,那么,統計的緩存會將馬上變化。為了壓縮緩存數據的大小提交傳輸速度,易訊網采用了自定義序列化的方式,它將 比.NET默認自定義序列化能夠減少2/3大小(沒有詳細測試過)并具有更高的序列化性能。當然,它犧牲靈活性,意味著如果我更改緩存數據的實體類,必須 重啟緩存服務,否則,將會觸發異常。部分內容采用了控件緩存的方式。

數據庫

到目前為止,除了對數據庫查詢優化之外,并沒有對數據庫進行過多的優化。用了聚焦索引和非聚焦索引是關鍵。數據庫優化是長期的過程。

略縮圖

上面有提到過圖像的略縮圖處理。易訊網對略縮圖的原則就是:
on-the-fly image resizing with Disk-caching
也說是說,動態生成圖像略縮圖并進行硬盤緩存。為什么采用這原則呢?當初采用哪種原則
是 有很考慮,當然現在只考慮下面幾點, 一考慮到略縮圖的大小可能會隨以后網站的設計改變而改變,二是生成略縮圖之后在將來很長很長的時間內不會變化。使用HttpModule模塊的方式代替 HttpHandler生成略縮圖。因為HttpHandler擴展性上遠遠沒有HttpModule靈活。

TaskFarmer

創 建這個組件的靈感源自Gearman以及Digg網站架構介紹。它是一個分布式任務執行服務,您可以在本地服務器上執行的任何分配給B服務器并等待返回B 返回值。目前主要是郵件發送和資訊的內容抓取采用這種方式。現在TaskFarmer只是一個簡單的組件,自己依照Memcached協議開發的服務端, 這樣一來,我原本使用的Memcached的客戶端組件只需要簡單修改就可以馬上使用,目前TaskFarmer并不會返回處理的值,但對易訊網目前來說 已經足夠了。除了那個等待處理的頁面無法精確判斷是否抓取內容處理成功之外,其它還是非常理想。呵。

Lucene.NET

Lucene 早期是應用在易訊網的網絡蛛蜘(后面我會提到這個系統)上面。采用了MMSEG中文分詞,目前主要應用在相關資訊搜索方面。現在正考慮將易訊網上面的用戶 好友日志或者DIGG的日志移到Lucene上查詢。Lucene索引分成二部分,一部分是:WorkingIndex或ActivityIndex,前 者用于索引易訊網新的內容,當全部索引全部完成之后自動添加到ActivityIndex中,這樣保證當working index的索引庫異常也不會影響正常環境下的索引庫。Lucene何時開始索引是基于Task Schedule服務的配置。

在這里提一個非常有意義的.NET下的搜索引擎項目:ArachNode.NET。 當時它一出來就開始注意到了,現在也已經非常成熟。易訊網也經歷了一段時間搜索方面開發,早期創建易訊網的時候,是想結合搜索引擎的技術結合用戶DIGG 的方法提高用戶網上閱讀的體驗。但是因為Arachnode.NET太過完美及復雜,另外就是特別吃內存,不得不放棄。另外一原因在于服務器根本就沒有太 多的硬盤空間來存放WEB網頁數據。如果您對Arachnode.NET感興趣,可以關注我的BLOG,下次會詳細介紹,目前正打算移植它的核心代碼根據 自己的需求創建一個小型靈活的搜索引擎。

現在網上流行AJAX技術,易訊網并沒有大量的使用AJAX,特別是那種一打開頁面就顯示 Loading效果的技術。一是出于SEO考慮,二是沒有覺得有特別適合那種非要AJAX才可的地方。 合適的使用AJAX確實能為用戶提高更好的體驗,我自己更傾向于大部的js加上部分的ajax的方式來達到用戶的體驗。

在新版本開發之 初,原來有意想為易訊網采用異步多線程任務的方式提高IO的密集處理。網上也看到一些比較優秀的文章和成熟的組件, 但是自己一因為不太了解,二是不習慣ASP.NET自帶的那種異步注冊方式,另外一點自己的要求比較特殊,就是它的多線程不應該使用ASP.NET默認線 程池中的線程。也許以后有機會還是會考慮異步的方式,特別是顯示資訊的詳細頁的時候。

整個易訊網前后經歷了差不多近一年時間,目前的新版本花了近三個多月時間,當然這幾個月也是收獲最大的幾個月,自己也為易訊網完成了幾個自己的組件,包括上面提到的TaskFarmer,MMSEG.NET以及新聞內容的提取,這些,也算是易訊網自己擁有自己的特色吧。
如果您想更好的理解易訊網,建議您可以訪問易訊網親自體驗下。您可以通過http://www.econfeed.com訪問。

原創文章,轉載請注明出處和鏈接。謝謝配合。

it知識庫淺談易訊網架構,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产精品自产拍2021在线观看 | 2021国内精品久久久久久影院 | 黄色免费网站在线 | 亚洲一区二区三区首页 | 香蕉免费一区二区三区在线观看 | 天天色综网 | 国产精品第3页 | 伊人五月综合 | 欧美激情 在线 | 一级特黄国产高清毛片97看片 | 一区二区3区免费视频 | 美女国产在线观看免费观看 | 久久久久青草线蕉亚洲麻豆 | 伊人免费在线 | 亚洲国产精品婷婷久久 | 欧洲精品在线视频 | 色综合久久88中文字幕 | 中文字幕久久久久久久系列 | 久久国产麻豆 | 真实乱视频国产免费观看 | 日本在线观看永久免费网站 | 精品国产精品国产 | 色老板导航 | 中日韩免费视频 | 色视频网站大全免费 | 久久久久久久久毛片精品 | 国产在线观看91 | 四虎影视永久在线 | 成人欧美视频免费看黄黄 | 看免费5xxaaa毛片30厘米 | 国产精品 第1页 | 亚洲欧美在线观看 | 午夜免费在线观看 | 97一区二区三区 | 日本高清色www网站色 | 午夜精品免费 | v视界成人影院在线视频 | 亚洲第一页在线视频 | 奇米影视狠狠干 | 美国人和狍xxxx视频 | 大香网伊人久久综合观看 |