自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從架構(gòu)差異看Web高性能開發(fā)

開發(fā) 架構(gòu)
筆者這里簡單的針對.NET下的Web高性能開發(fā)來說下,其實(shí)這個(gè)不是只針對.NET,畢竟架構(gòu)不分語言。這里將架構(gòu)分兩種來討論的,一種是開發(fā)架構(gòu),一種是部署架構(gòu)。

一般情況下,架構(gòu)分兩種來討論的,一種是開發(fā)架構(gòu),一種是部署架構(gòu)

部署架構(gòu),就是開發(fā)完的程序在實(shí)際運(yùn)行環(huán)境下,通過負(fù)載均衡,DNS輪詢,SquID等等來減輕單臺(tái)服務(wù)器負(fù)載,達(dá)到性能優(yōu)化的目的

這里大家估計(jì)更想了解的是開發(fā)上的架構(gòu)

我對這個(gè)的觀點(diǎn)是,所有的架構(gòu)都是死的,而Web高性能開發(fā)優(yōu)化策略是活的,我在開發(fā)中,所有的東西都不是一定要按照什么固定的模式,去死開發(fā),更多的是針對需要優(yōu)化的信息進(jìn)行針對處理,下面說說我的優(yōu)化策略

1、數(shù)據(jù)庫優(yōu)化,這個(gè)是所有的優(yōu)化策略中中重要的,可以說數(shù)據(jù)庫設(shè)計(jì)的好壞,直接影響了一個(gè)系統(tǒng)的承受力。普通的數(shù)據(jù)庫細(xì)節(jié)優(yōu)化,網(wǎng)上已經(jīng)有大筆文章了,沒什么好說的,想了解的自己去找。而我要說的就是在數(shù)據(jù)庫設(shè)計(jì)中的一個(gè)思路,分庫、分表、緩存表。

1)分庫指的是在設(shè)計(jì)中,要考慮到后期數(shù)據(jù)量大的情況下,你的數(shù)據(jù)庫能夠隨著應(yīng)用隨時(shí)拆分,這個(gè)拆分并不是只是針對功能模塊對應(yīng)的數(shù)據(jù)拆分。舉個(gè)例子,就 用這個(gè)CSDN論壇吧,比如里面有很多類,C#版,JAVA版,系統(tǒng)設(shè)計(jì)版等等,拆分的目的是可以把任何一個(gè)版的數(shù)據(jù)拆分到單獨(dú)的一個(gè)數(shù)據(jù)庫中去。

2)分表相對的就好理解了,就是說同類型的數(shù)據(jù),你可以為了性能優(yōu)化,進(jìn)行拆分到多個(gè)表中去,拆分規(guī)則可以有多種,按照類型、按照時(shí)間、按照姓名等等。同樣以這個(gè)CSDN論壇來說,我要設(shè)計(jì)的話,我會(huì)按照里面的大版面進(jìn)行數(shù)據(jù)庫拆分,而按照小版,進(jìn)行表拆分。

3)而對于緩存表,網(wǎng)上我還很少看到有人來說這個(gè)東西,這個(gè)的目的就是針對一個(gè)大的數(shù)據(jù)表中,一般中有死數(shù)據(jù)庫和活動(dòng)數(shù)據(jù),比如用戶表,里面有很多基本不 來的用戶,那么針對這樣的情況,當(dāng)表數(shù)據(jù)上了千萬的時(shí)候,我就會(huì)采用緩存表的模式來進(jìn)行了,就是在實(shí)際表和用戶之間在搭建一個(gè)臨時(shí)表,訪問用戶數(shù)據(jù)時(shí),首 先訪問臨時(shí)表,如果不存在,則進(jìn)入實(shí)際表中獲取,然后放入緩存表中,同時(shí)會(huì)通過后臺(tái)線程,定時(shí)將緩存表數(shù)據(jù)同步到實(shí)際數(shù)據(jù)庫中,同步時(shí)間可以針對系統(tǒng)要求 來進(jìn)行。

如果理解了上面的東西,那么在數(shù)據(jù)承載上,可以上升一個(gè)很大的層次。。。。。

2、程序優(yōu)化。這個(gè)對我來說相對的就不是那么的看中了,程序的優(yōu)化,我更多的認(rèn)為是個(gè)技巧,而不是架構(gòu)了,包括現(xiàn)在經(jīng)常見到的那些各種設(shè)計(jì)模式,另外這里提下,很多設(shè)計(jì)模式,他的出發(fā)點(diǎn)并不是Web高性能開發(fā),而是考慮的系統(tǒng)擴(kuò)展性,所以在單個(gè)技術(shù)細(xì)節(jié)上,很多人也發(fā)現(xiàn)了,并不如直接的寫代碼來的快,但是就是推薦 那樣,是因?yàn)椴捎昧四切┠J降某绦?,擴(kuò)展性比你的強(qiáng),那么一旦系統(tǒng)要求變動(dòng),或者是要求進(jìn)行拆分的時(shí)候要比你方便的多,在分擔(dān)到多個(gè)服務(wù)器上時(shí),性能相對 的就起到了優(yōu)化也。廢話了通,繼續(xù)說我對程序部分經(jīng)常采用的方式吧

1) 首推靜態(tài)化,這個(gè)的優(yōu)化效果不用多說,直接減輕了服務(wù)器負(fù)擔(dān),不過如果用上了Squid,那么有第三放來做靜態(tài),也可以達(dá)到同樣的效果

2) 合適的數(shù)據(jù)緩存,緩存很多人都用到了,但是在使用前,是否認(rèn)真思考過為這個(gè)這個(gè)要進(jìn)行Cache,Cache他的標(biāo)準(zhǔn)是什么?我說下我的標(biāo)準(zhǔn):小數(shù)據(jù)量、 大訪問量、更新盡量少的數(shù)據(jù),全部可以進(jìn)行緩存。另外我提到的緩存,并不只是說。NET本身提供的Cache,我說的緩存還包括了使用Static來進(jìn)行 的數(shù)據(jù)

3) 活用線程,很多人的觀念中感覺線程好象在B/S中是用不到的,或者是沒有必要。其實(shí)這個(gè)觀念完全錯(cuò),在特定情況下使用線程,可以提高的局部性能不是一點(diǎn)兩點(diǎn)

4) 功能模塊拆分,這個(gè)一般人基本都在做,我要補(bǔ)充的是,不只是在單個(gè)項(xiàng)目中進(jìn)行功能模塊的拆分,而是為了進(jìn)行分步式開發(fā)而進(jìn)行拆分

在其它的基本都是細(xì)節(jié)優(yōu)化了,這個(gè)沒有太多興趣寫了,網(wǎng)上資料應(yīng)該不少,可以自己搜索查閱

上面的這幾部分如果能在開發(fā)中,靈活運(yùn)用上,可以說,你實(shí)現(xiàn)Web高性能開發(fā),絕對不是難事。

我曾經(jīng)開發(fā)的過的站點(diǎn)中,也有過社區(qū),一個(gè)WEB 服務(wù)器,一個(gè)DB服務(wù)器,主題帖千萬,回復(fù)帖有6000W左右吧,其它數(shù)據(jù)不算,運(yùn)行過程中沒出過任何問題,日訪問在100W PV情況下,還沒有達(dá)到性能瓶頸

【編輯推薦】

  1. 如何加快JSP訪問速度
  2. 淺談如何提高AJAX客戶端響應(yīng)速度
  3. 提升JSP頁面響應(yīng)速度的七大絕招
  4. Struts標(biāo)簽與JSP的效果與速度比較
  5. 提升JSP頁面響應(yīng)速度的七大技巧
責(zé)任編輯:彭凡 來源: cnblogs
相關(guān)推薦

2020-06-17 16:43:40

網(wǎng)絡(luò)IO框架

2011-06-14 09:27:43

高性能WEB開發(fā)

2013-09-10 16:16:19

移動(dòng)網(wǎng)站性能優(yōu)化移動(dòng)web

2011-04-07 13:53:25

Web工具

2011-04-18 10:16:30

WEB高性能

2009-07-13 18:11:53

2020-11-03 09:14:21

高性能開發(fā)內(nèi)存

2011-10-18 13:58:32

高性能web

2011-04-19 11:06:03

JavaScriptweb

2016-08-23 14:37:21

2011-04-27 10:57:29

高性能web開發(fā)

2011-04-07 13:39:24

WebHTTP

2011-04-21 09:59:48

WEBjavascript

2010-12-23 17:45:54

x86浪潮山東大學(xué)

2013-06-19 09:20:53

Web開發(fā)Web性能優(yōu)化高性能

2016-11-28 09:19:27

2011-04-22 09:54:37

CSSjavascript

2013-08-16 14:43:14

高性能移動(dòng)Web移動(dòng)Web站點(diǎn)移動(dòng)Web

2016-04-01 11:24:34

h5架構(gòu)

2015-02-05 09:12:56

Docker微服務(wù)AWS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號