九九热这里直有精品,1区二区三区在线播放,玖玖爱在线观看资源,国产aⅴ综合网,午夜福利男女,日本亚洲欧美三级,日韩无码黄色导航,内射少妇13区,中文字幕高清网

您身邊的軟件定制專家--9年開發(fā)經(jīng)驗(yàn)為您護(hù)航

18678812288
0531-88887250

對(duì).NET系統(tǒng)架構(gòu)改造的經(jīng)驗(yàn)和教訓(xùn)

文章作者:濟(jì)南軟件開發(fā) 時(shí)間:2016年11月08日

  濟(jì)南軟件開發(fā)向您介紹,怎樣搭建合適的網(wǎng)站框架:

  1、數(shù)據(jù)層放棄SQL Server數(shù)據(jù)庫(kù)和存儲(chǔ)過(guò)程,全部遷移到Linux平臺(tái)上的MySQL數(shù)據(jù)庫(kù)上;

  2、緩存不再依賴.net自身提供的緩存機(jī)制,遷移到部署在Linux平臺(tái)上的分布式的Redis上;

  3、服務(wù)之間的調(diào)用,避免使用.net自身專有協(xié)議,改成Restful的HTTP Web API調(diào)用;

  4、靜態(tài)資源請(qǐng)求,不再讓IIS自己處理,分離到Linux平臺(tái)上的nginx去處理;

  5、需要讀取的文件系統(tǒng),也改成訪問(wèn)Linux平臺(tái)上的分布式文件系統(tǒng);

  6、部署.net代碼的Windows服務(wù)器放在LVS后面,用LVS做負(fù)載均衡和故障切換;

  簡(jiǎn)單說(shuō)來(lái),就是單純讓.net做應(yīng)用層的編程語(yǔ)言和框架,其他都交給Linux平臺(tái)的開源解決方案。而.net框架單純做應(yīng)用層,無(wú)論ASP.net MVC的開發(fā)效率,還是.net CLR虛擬機(jī)的運(yùn)行效率都非常好,目前我們單臺(tái)Windows服務(wù)器上跑幾百萬(wàn)的動(dòng)態(tài)請(qǐng)求毫無(wú)壓力,而且應(yīng)用層架構(gòu)是可以橫向擴(kuò)展的:如果請(qǐng)求負(fù)載非常高,只需要添加更多Windows服務(wù)器即可。總之,做到了揚(yáng)長(zhǎng)避短。

  我們濟(jì)南軟件開發(fā)還有熟悉大型互聯(lián)網(wǎng)技術(shù)架構(gòu)的人應(yīng)該很容易的發(fā)現(xiàn),這個(gè)重構(gòu)過(guò)程其實(shí)就是一個(gè)“讓合適的東西干合適的事情”這樣一項(xiàng)工作:

  1、把過(guò)多業(yè)務(wù)邏輯寫到存儲(chǔ)過(guò)程中必然導(dǎo)致數(shù)據(jù)庫(kù)服務(wù)器壓力的增大,而且不利于負(fù)載均衡,因此去“存儲(chǔ)過(guò)程”是必要的;

  2、SQLServer實(shí)現(xiàn)集群的能力很差,用MYSQL之類的數(shù)據(jù)庫(kù)是一個(gè)不錯(cuò)的選擇;

  3、緩存還是用.Net內(nèi)置的InProc緩存機(jī)制對(duì)于高并發(fā)的網(wǎng)站來(lái)講是一個(gè)災(zāi)難,用Redis之類分布式緩存來(lái)代替是必然的過(guò)程;

  4、使用.Net Remoting之類的私有協(xié)議不利于異構(gòu)系統(tǒng)集成,改成webservice、REST也是必須的;

  5、靜態(tài)文件的請(qǐng)求也經(jīng)過(guò)IIS有點(diǎn)太勞煩IIS了,扔給nginx才更合適;

  6、Windows服務(wù)器的文件系統(tǒng)很不靈活,換成更加靈活的Linux下的分布式文件系統(tǒng)是聰明的;

  7、采用LVS、nginx之類做負(fù)載均衡也是最合適的。

  其實(shí)任何一個(gè)大型互聯(lián)網(wǎng)基本都是這樣一個(gè)架構(gòu):前端使用nginx等做負(fù)載均衡,使用Redis、memcached等做分布式緩存,使用數(shù)據(jù)庫(kù)集群進(jìn)行讀寫分離之類的優(yōu)化,使用分布式文件系統(tǒng)處理圖片等靜態(tài)文件。 請(qǐng)問(wèn),使用PHP、Java等做web服務(wù)器開發(fā)的大型互聯(lián)網(wǎng),哪個(gè)使用JSP內(nèi)置的Session對(duì)象做Session的,不都要換用redis嗎?哪個(gè)把圖片和php放到一個(gè)服務(wù)器的,不都放到文件服務(wù)器中嗎?哪個(gè)一個(gè)apache服務(wù)器就可以扛起來(lái)的,不都是nginx之類的擋在前面做負(fù)載均衡的嗎? 怎么不說(shuō)“去php化”、“去java化”呢?要知道redis、memcached、ngix之類的可都不是java、php寫的呀,一個(gè)java項(xiàng)目竟然用其他語(yǔ)言寫的東西,難道不丟面子?

  我們濟(jì)南軟件開發(fā)認(rèn)為,其實(shí)一個(gè)大型的系統(tǒng)中,根據(jù)項(xiàng)目的不同特點(diǎn)來(lái)組合搭配不同的產(chǎn)品、組件是一個(gè)必然的過(guò)程,去了解一下這些系統(tǒng)中“混搭”是常見的現(xiàn)象。單一產(chǎn)品中提供能的功能只能滿足普通項(xiàng)目的需求,要想滿足復(fù)雜的項(xiàng)目,必須把這些產(chǎn)品中提供的一些傻瓜化的簡(jiǎn)單組件用更專業(yè)的組件來(lái)替換,就像做小項(xiàng)目php中的Session足夠了,但是大項(xiàng)目必須用c/c++開發(fā)的memcached來(lái)替換。


想要了解更多詳情歡迎來(lái)電咨詢18678812288
登陸網(wǎng)址:m.h6244.cn。
聯(lián)系人:王經(jīng)理。

右玉县| 万盛区| 温宿县| 三明市| 松溪县| 临猗县| 揭阳市| 东阳市| 陈巴尔虎旗| 黔江区| 象山县| 华阴市| 宿松县| 鹤峰县| 都兰县| 湘潭市| 祥云县| 平泉县| 余姚市| 东阳市| 宁津县| 荥阳市| 孟津县| 巩义市| 萍乡市| 宁南县| 苍梧县| 社旗县| 龙川县| 惠水县| 西平县| 长子县| 米林县| 焦作市| 怀仁县| 偃师市| 平武县| 都匀市| 疏勒县| 丰县| 登封市|