久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

哪個(gè)家伙說“網(wǎng)站去.Net化”,?

 昵稱26681333 2015-07-27

上個(gè)月,,JavaEye創(chuàng)始人范凱robbin的一篇博客《對(duì).NET系統(tǒng)架構(gòu)改造的一點(diǎn)經(jīng)驗(yàn)和教訓(xùn)》引起了大討論,里面提到了京東“去.Net化”,、“CSDN去.Net化”之類的詞刺激到了一些人的神經(jīng),,有的人在評(píng)論中破口大罵“.Net最牛逼,.Net搞不好是你技術(shù)不行”,,有的人則罵“.Net就是垃圾,,上不了大臺(tái)面”。有些朋友還在微博上at我,,問我“楊老師,,.net是不是不行了,聽說大網(wǎng)站都‘去.Net化’了”,、“楊老師,,關(guān)于‘去.Net化’你怎么看?”,所以我還是來談?wù)勊^的“去.Net化”吧,。

         其實(shí)只要認(rèn)真看robbin的文章,,就會(huì)知道他并不是在說“去.Net化”而是在說“怎樣搭建合適的網(wǎng)站框架”。注意看這段話:

  1. 數(shù)據(jù)層放棄SQL Server數(shù)據(jù)庫和存儲(chǔ)過程,,全部遷移到Linux平臺(tái)上的MySQL數(shù)據(jù)庫上,;
  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),,也改成訪問Linux平臺(tái)上的分布式文件系統(tǒng);
  6. 部署.net代碼的Windows服務(wù)器放在LVS后面,,用LVS做負(fù)載均衡和故障切換,; 

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

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

  1. 把過多業(yè)務(wù)邏輯寫到存儲(chǔ)過程中必然導(dǎo)致數(shù)據(jù)庫服務(wù)器壓力的增大,,而且不利于負(fù)載均衡,,因此去“存儲(chǔ)過程”是必要的;
  2. SQLServer實(shí)現(xiàn)集群的能力很差,,用MYSQL之類的數(shù)據(jù)庫是一個(gè)不錯(cuò)的選擇,;
  3. 緩存還是用.Net內(nèi)置的InProc緩存機(jī)制對(duì)于高并發(fā)的網(wǎng)站來講是一個(gè)災(zāi)難,,用Redis之類分布式緩存來代替是必然的過程,;
  4. 使用.Net Remoting之類的私有協(xié)議不利于異構(gòu)系統(tǒng)集成,改成webservice、REST也是必須的,;
  5. 靜態(tài)文件的請(qǐng)求也經(jīng)過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ù)庫集群進(jìn)行讀寫分離之類的優(yōu)化,,使用分布式文件系統(tǒng)處理圖片等靜態(tài)文件。

         請(qǐng)問,,使用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ù)器就可以扛起來的,,不都是nginx之類的擋在前面做負(fù)載均衡的嗎?  怎么不說“去php化”,、“去java化”呢,?要知道redis、memcached,、ngix之類的可都不是java,、php寫的呀,一個(gè)java項(xiàng)目竟然用其他語言寫的東西,,難道不丟面子,?

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

         我前陣子我發(fā)了一個(gè)帖子《【分享】.Net有哪些大型項(xiàng)目、大型網(wǎng)站的案例?》 ,,這個(gè)帖子中提到的.Net技術(shù)的大型網(wǎng)站絕大部分都是“混搭結(jié)構(gòu)”的(這些網(wǎng)站中至少有10個(gè)有傳智播客.Net培訓(xùn)班的學(xué)生,,我都跟他們交流過他們的技術(shù)架構(gòu))。很奇怪的一件事情是,,在Java,、PHP社區(qū)中經(jīng)常可以看到討論這些“架構(gòu)”的文章,,但是在.Net社區(qū)中則很少見到有人分享這些東西,。希望.Net社區(qū)中的技術(shù)大牛們以后能把這些經(jīng)驗(yàn)多多分享,讓更多的人能夠了解這些技術(shù)并且在項(xiàng)目中應(yīng)用這些技術(shù),,提升.Net社區(qū)討論技術(shù)的層次,,不要讓.Net社區(qū)的人總是在討論一些很初級(jí)的問題,最起碼不要只是為了不同網(wǎng)頁頭尾統(tǒng)一就使用又笨又重的MasterPage(其實(shí)用一下shtml就可以了),、不要討論個(gè)三層架構(gòu)就認(rèn)為是架構(gòu)師了,、不要弄個(gè)代碼生成器就是高科技了……咱們也要真正的擁抱Best Practice、擁抱混搭,。

         不希望這個(gè)博文又成為不同語言相互攻擊的月經(jīng)貼,,希望大家討論一些真正有用的東西。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多