欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

.net分布式系統(tǒng)架構(gòu)的思路是什么

今天就跟大家聊聊有關(guān).net分布式系統(tǒng)架構(gòu)的思路是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

堅守“ 做人真誠 · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都混凝土攪拌罐車小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)頁設(shè)計營銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。

最近看到有部分招聘信息,要求應(yīng)聘者說一下分布式系統(tǒng)架構(gòu)的思路。今天早晨正好有些時間,我也把我們實際在.net方面網(wǎng)站架構(gòu)的演化路線整理一下,只是我自己的一些想法,歡迎大家批評指正。

首先說明的是.net下開源內(nèi)容較少,并且也不是做并行數(shù)據(jù)庫等基礎(chǔ)服務(wù),因此在這里什么Hadoop、Spark、ZooKeeper、dubbo等我們暫不去考慮。

一、最初假設(shè)的網(wǎng)站中,我們把應(yīng)用系統(tǒng)網(wǎng)站、文件和數(shù)據(jù)庫都放在一臺服務(wù)器上,一臺服務(wù)器包打天下。

.net分布式系統(tǒng)架構(gòu)的思路是什么

二、隨著業(yè)務(wù)擴展,一臺服務(wù)器無法滿足性能需求,將應(yīng)用程序、數(shù)據(jù)庫、文件分別部署在不同的服務(wù)器上,并根據(jù)服務(wù)器用途不同,配置不同的硬件,達(dá)到性能最佳的效果。

.net分布式系統(tǒng)架構(gòu)的思路是什么

三、隨著業(yè)務(wù)擴展,一臺數(shù)據(jù)庫、網(wǎng)站、文件服務(wù)器再高性能也無法大量數(shù)據(jù)處理、高并發(fā)用戶訪問時,必須考慮采用集群方式。

1、應(yīng)用服務(wù)器作為網(wǎng)站的入口,會承擔(dān)大量的請求,我們往往通過應(yīng)用服務(wù)器集群來分擔(dān)請求數(shù)。應(yīng)用服務(wù)器前面部署負(fù)載均衡服務(wù)器調(diào)度用戶請求,根據(jù)分發(fā)策略將請求分發(fā)到多個應(yīng)用服務(wù)器節(jié)點。常用的負(fù)載均衡技術(shù)硬件的有F5,價格比較貴,軟件的有LVS、Nginx、HAProxy等。

2、隨著用戶量的增加,數(shù)據(jù)庫成為最大的瓶頸,改善數(shù)據(jù)庫性能常用的手段是進(jìn)行讀寫分離以及分表,讀寫分離顧名思義就是將數(shù)據(jù)庫分為讀庫和寫庫,通過主備功能實現(xiàn)數(shù)據(jù)同步。分庫分表則分為水平切分和垂直切分,水平切換則是對一個數(shù)據(jù)庫特大的表進(jìn)行拆分,例如訂單、物流信息表等。垂直切分則是根據(jù)業(yè)務(wù)不同來切換,如訂單、計稅等等不同的主題放在不同的數(shù)據(jù)庫中。這種情況下,關(guān)聯(lián)查詢是沒有的,通過程序可以比較容易的去解決,還有就是采用分布式事務(wù),來保證數(shù)據(jù)的一致性。我們這里還有一個做法,一個大的數(shù)據(jù)表拆分為當(dāng)前操作表和歷史記錄表, 當(dāng)前操作表只保留正在操作的數(shù)據(jù),完成后轉(zhuǎn)入歷史記錄表,這樣可以提高當(dāng)前操作數(shù)據(jù)的效率。

3、用戶一天天增加,業(yè)務(wù)量越來越大,產(chǎn)生的文件越來越多。通常情況下,一個目錄下的文件建議不能超過1萬個,否則對于文件的查找和輪詢都會非常慢,會導(dǎo)致整個系統(tǒng)無法正常運行。我們一般是按照"\應(yīng)用程序名\模塊名稱\日期"的目錄結(jié)構(gòu)組織的,對于文件數(shù)目仍舊很大的應(yīng)用,應(yīng)該再細(xì)分。當(dāng)單臺的文件服務(wù)器已經(jīng)不能滿足需求,就需要分布式的文件系統(tǒng)支撐。常用的分布式文件系統(tǒng)有NFS。我們用的是MS的分布式文件系統(tǒng)(DFS),與AD域相關(guān)性較大。

4、因為應(yīng)用服務(wù)器是集群方式,用戶前后兩次請求可能訪問的不是一臺服務(wù)器。因此已經(jīng)不能像以前一樣使用狀態(tài)(Application、Session、Cache、ViewState等),應(yīng)用系統(tǒng)必須是無狀態(tài)的(當(dāng)然了,用的負(fù)載均衡具有會話保持的時候,一個用戶只會定位到一臺服務(wù)器)。系統(tǒng)的緩存應(yīng)該保存在專門的緩存服務(wù)器上,如果必須有狀態(tài),也應(yīng)該保存在專門的緩存服務(wù)器中。作為第一批吃螃蟹者,我們用了微軟的AppFabric作為緩存服務(wù)器,因為當(dāng)時版本很低,問題也不少,后來我們棄用了AppFabric,使用redis作為緩存服務(wù)?,F(xiàn)在,AppFabric已經(jīng)改進(jìn)了不少,運行在Azure云上,應(yīng)該是不會存在以前的問題了。

.net分布式系統(tǒng)架構(gòu)的思路是什么

中間插一段啊。對于各種政府、單位等不能將系統(tǒng)部署到互聯(lián)網(wǎng)的部門,并且在各省、市都有對應(yīng)的分支機構(gòu)。因為網(wǎng)絡(luò)專線的價格還是比較高的,至少比互聯(lián)網(wǎng)的網(wǎng)絡(luò)帶寬低了不少,當(dāng)然了不差錢的不說啊。這種情況下,一般不采用如上的集中式、集群部署方式,而是采用分布式部署的方式,第一種分布式部署是各分支機構(gòu)搭建一整套系統(tǒng),定期(例如每天)進(jìn)行數(shù)據(jù)的同步工作,將分支數(shù)據(jù)匯總到總部、總部的數(shù)據(jù)下發(fā)回各分部;第二種分布式部署方式是各分支部署中間件,但是數(shù)據(jù)集中在總部。

四、隨著業(yè)務(wù)進(jìn)一步擴展,應(yīng)用程序變得非常臃腫,這時我們需要將應(yīng)用程序進(jìn)行業(yè)務(wù)拆分,如我們做的綜合業(yè)務(wù)管理系統(tǒng)分為門戶、聯(lián)系處置、業(yè)務(wù)信息、指標(biāo)、數(shù)據(jù)查詢分析等業(yè)務(wù)板塊。每個業(yè)務(wù)板塊是一個獨立的應(yīng)用負(fù)責(zé)相對獨立的業(yè)務(wù)運作。業(yè)務(wù)板塊之間通過消息隊列進(jìn)行通信來實現(xiàn)。數(shù)據(jù)庫也進(jìn)行相應(yīng)的拆分,不同的主題放到不同的數(shù)據(jù)庫中。同時,最好搭建靜態(tài)資源服務(wù)器,將公用的css、js、images等都存放到靜態(tài)資源服務(wù)器中。

.net分布式系統(tǒng)架構(gòu)的思路是什么

五、對于海量數(shù)據(jù)的查詢,我們使用NoSql數(shù)據(jù)庫加上搜索引擎可以達(dá)到更好的性能。并不是所有的數(shù)據(jù)都要放在關(guān)系型數(shù)據(jù)中。常用的NOSQL有MongoDB和redis,搜索引擎有l(wèi)ucene,我們使用的Solr、ElasticSearch等基于Lucene內(nèi)核實現(xiàn)的更易用的搜索引擎。數(shù)據(jù)量大的話,Solr等也要做成集群。

.net分布式系統(tǒng)架構(gòu)的思路是什么

六、再往下走,系統(tǒng)需要與其他系統(tǒng)進(jìn)行交互,系統(tǒng)也要給各種前端(例如網(wǎng)站、安卓、IOS)提供服務(wù),這樣我們就要在邏輯層之上建設(shè)應(yīng)用服務(wù)層,提供對客戶端的和對外的SOA服務(wù)接口。這樣又涉及到DTO、WebService、WCF和WebApi(Rest)等概念。但是最重要的是,SOA方式下,包括前面的MQ方式下,事務(wù)一致性無法得到保障的,必須采用一定的機制例如事務(wù)補償機制來確保事務(wù)的最終一致性。各個業(yè)務(wù)板塊所在的服務(wù)器,在不同時段的壓力也不同,為了盡量做到服務(wù)器集群內(nèi)各服務(wù)器的壓力平攤, 還需要提供更好的機制,記錄下每個服務(wù)器的壓力、資源情況、連接數(shù)等等,以便將新的請求轉(zhuǎn)向到壓力最小的服務(wù)器上。

七、業(yè)務(wù)繼續(xù)發(fā)展,就是cdn,再往下就是搭建幾個中心,將系統(tǒng)部署在各個中心,各地用戶訪問距離他最近的中心,中心間數(shù)據(jù)保持同步。

八、上面講了應(yīng)用系統(tǒng)方面比較多,數(shù)據(jù)方面也要做許多工作。上面已經(jīng)介紹了分庫分表方式。應(yīng)用系統(tǒng)做大了,勢必有許多的數(shù)據(jù)資源,尤其是現(xiàn)在大數(shù)據(jù)這個名詞非?;鸨那闆r下,數(shù)據(jù)分析和處理是一個系統(tǒng)必須要做的事情。這樣做的好處是,將數(shù)據(jù)的查詢、分析等獨立出來,不影響正式運行中的系統(tǒng),另外是通過分析挖掘確實能得到許多意想不到的價值。

這時,主要的工作是搭建數(shù)據(jù)倉庫,然后進(jìn)行后續(xù)的分析和處理。使用ETL/ELT將數(shù)據(jù)定期從正式環(huán)境中導(dǎo)入到數(shù)據(jù)倉庫中,按照不同的主題搭建一個個的數(shù)據(jù)集市。對于數(shù)據(jù)量比較小的系統(tǒng),可以使用關(guān)系數(shù)據(jù)庫+多維數(shù)據(jù)庫的方式;對于大型系統(tǒng),就要使用按列存儲、并行數(shù)據(jù)庫等方式了。對于數(shù)據(jù)的分析可以以報表、KPI、儀表盤駕駛艙等方式提供上層領(lǐng)導(dǎo)決策,也可以使用數(shù)據(jù)挖掘、機器學(xué)習(xí)和訓(xùn)練等方式實現(xiàn)價值發(fā)現(xiàn)、風(fēng)險控制等。

九、一般情況下,企業(yè)是沒有那么大的財力和人員去做上述內(nèi)容的,因此使用云成為企業(yè)的一個選擇。無論是Azure、阿里云、亞馬遜等都會提供一個個的服務(wù)。我們就以阿里云為例,ECS提供虛擬服務(wù)器、SLB提供負(fù)載均衡、RDS提供數(shù)據(jù)庫服務(wù)、OSS提供存儲服務(wù)、DRDS是分布式數(shù)據(jù)服務(wù)、ODSP(現(xiàn)在改名叫MaxCompute)提供大數(shù)據(jù)的計算服務(wù)、RocketMQ提供MQ、OCS提供分布式緩存服務(wù)、以及CDN、OTS、ADS等等就不一一列舉了。

對了,現(xiàn)在還有Docker這個利器,無論在企業(yè)還是云中都可以使用,我們在自己內(nèi)部使用的Redis、Memcached、RabbitMQ、Solr等都部署在Docker中,確實比較方便。 

上面說了一大堆,其實架構(gòu)做的再好,還需要底層來實現(xiàn)。目前流行的語言還是面向?qū)ο驩O的Java、.net等,也就是說還是用OO的思想和理念去編程。抽象、封裝、繼承、多態(tài)盡管很字面上比較容易理解,但是深入的認(rèn)識確實需要一定的程序量的積累,面向?qū)ο蟮膸状笤瓌t和設(shè)計模式還是編寫出更高可擴展、可替換、可配置、可維護(hù)等軟件質(zhì)量指標(biāo)的代碼的重要保證。

看完上述內(nèi)容,你們對.net分布式系統(tǒng)架構(gòu)的思路是什么有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁標(biāo)題:.net分布式系統(tǒng)架構(gòu)的思路是什么
文章網(wǎng)址:http://chinadenli.net/article44/iheoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、面包屑導(dǎo)航、全網(wǎng)營銷推廣網(wǎng)站策劃、自適應(yīng)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計