關(guān)于高并發(fā)、分布式谎倔、集群和云計算

高并發(fā)(high currency):互聯(lián)網(wǎng)分布式系統(tǒng)結(jié)構(gòu)設(shè)計中必須考慮的因素之一猿推,指通過設(shè)計保證系統(tǒng)能夠同時并發(fā)處理很多請求。在某個時間點藕咏,有多少個訪問同時到來具垫。

一、常用指標(biāo):

響應(yīng)時間筝蚕、吞吐量铺坞、每秒查詢量QPS(query per seconde)济榨,并發(fā)用戶數(shù)等

【響應(yīng)時間:系統(tǒng)對請求做出響應(yīng)的時間(如系統(tǒng)處理一個http請求需要200ms绿映,就是響應(yīng)時間)

QPS:每秒響應(yīng)請求數(shù)

并發(fā)用戶數(shù):同時承載正常使用系統(tǒng)功能的用戶數(shù)量。(如一個即時通訊系統(tǒng)叉弦,同時在線量也代表了系統(tǒng)的并發(fā)用戶數(shù))】

二、提高系統(tǒng)并發(fā)能力的方式:垂直擴(kuò)展和水平擴(kuò)展

垂直擴(kuò)展:提升單機(jī)處理能力库车。

又分為兩種:(1)增強(qiáng)單機(jī)硬件性能(例如:增加CPU核數(shù)如32核樱拴,升級更好的網(wǎng)卡如萬兆,升級更好的硬盤如SSD珍坊,擴(kuò)充硬盤容量如2T正罢,擴(kuò)充系統(tǒng)內(nèi)存如128G;)

(2)提升單機(jī)架構(gòu)性能袱饭,例如:使用Cache來減少IO次數(shù)呛占,使用異步來增加單服務(wù)吞吐量,使用無鎖數(shù)據(jù)結(jié)構(gòu)來減少響應(yīng)時間晾虑;

水平擴(kuò)展:增加服務(wù)器數(shù)量帜篇,可線性擴(kuò)充系統(tǒng)性能。


三笙隙、其他

1、處理高并發(fā)的業(yè)務(wù)邏輯是:

前端:異步請求+資源靜態(tài)化+cdn

后端:請求隊列+輪詢分發(fā)+負(fù)載均衡+共享緩存

數(shù)據(jù)層:redis緩存+數(shù)據(jù)分表+寫隊列

存儲:raid陣列+熱備

網(wǎng)絡(luò):dns輪詢+DDOS攻擊防護(hù)

2签钩、學(xué)習(xí)高并發(fā)的工具:redis、nginx/Tengine憎夷、keeplive昧旨、DRBD、heartbeat在虛擬機(jī)上跑




一兔沃、分布式:工作方式粘拾。 即一個業(yè)務(wù)拆分為多個子業(yè)務(wù),部署在不同的服務(wù)器上缰雇。

最簡單的分布式就是大家最常用的追驴,在負(fù)載均衡服務(wù)器后加一堆web服務(wù)器殿雪,然后在上面搞一個緩存服務(wù)器來保存臨時狀態(tài),后面共享一個數(shù)據(jù)庫丙曙,其實很多號稱分布式專家的人也就停留于此,大致結(jié)構(gòu)如下圖所示:

分布式的每一個節(jié)點扯旷,都可以用來做集群索抓。而集群不一定就是分布式了。

二耸黑、集群:物理形態(tài)篮幢。即同一個業(yè)務(wù),部署在多個服務(wù)器上缺菌,可以視為一臺計算機(jī)。

1另患、多臺服務(wù)器組成的一組計算機(jī)蛾绎,作為一個整體存在,向用戶提供一組網(wǎng)絡(luò)資源租冠,這些單個的服務(wù)器就是集群的節(jié)點。

2纤泵、兩個特點:

可擴(kuò)展性:集群中的服務(wù)節(jié)點镜粤,可以動態(tài)的添加機(jī)器,從而增加集群的處理能力公荧。

高可用性:如果集群某個節(jié)點發(fā)生故障同规,這臺節(jié)點上面運行的服務(wù),可以被其他服務(wù)節(jié)點接管绪钥,從而增強(qiáng)集群的高可用性关炼。

3、常用的集群分類

1.高可用集群(High Availability Cluster)

高可用集群,普通兩節(jié)點雙機(jī)熱備跪楞,多節(jié)點HA集群侣灶。

2.負(fù)載均衡集群(Load Balance Cluster)

常用的有 Nginx 把請求分發(fā)給后端的不同web服務(wù)器,還有就是數(shù)據(jù)庫集群褥影,負(fù)載均衡就是,為了保證服務(wù)器的高可用校焦,高并發(fā)。

3.科學(xué)計算集群(High Performance Computing Cluster)

簡稱HPC集群氛雪。這類集群致力于提供單個計算機(jī)所不能提供的強(qiáng)大的計算能力耸成。

4、兩大能力

負(fù)載均衡:負(fù)載均衡能把任務(wù)比較均衡地分布到集群環(huán)境下的計算和網(wǎng)絡(luò)資源弦追。

集群容錯:當(dāng)我們的系統(tǒng)中用到集群環(huán)境,因為各種原因在集群調(diào)用失敗時花竞,集群容錯起到關(guān)鍵性的作用。


三零远、云計算平臺:一個云計算平臺厌蔽,就是通過一套軟件系統(tǒng)把分布式部署的資源集中調(diào)度使用。要應(yīng)對大并發(fā),要實現(xiàn)高可用供填,既需要分布式,也離不開集群叉瘩。

四粘捎、分布式運用場景:分布式系統(tǒng)有很多種,比如分布式文件系統(tǒng)泳桦,分布式數(shù)據(jù)庫娩缰,分布式WebService,分布式計算等等浮毯,場景不同,運用的分布式思路也不同债蓝。

分布式架構(gòu)的思路主要是:水平擴(kuò)展和垂直擴(kuò)展

1饰迹、水平擴(kuò)展(完全平分)

舉例子:假設(shè)我們有一臺服務(wù)器,它可以承擔(dān)1百萬/秒的請求蹦锋,這個請求可以的是通過http訪問網(wǎng)頁莉掂,通過tcp下載文件,jdbc執(zhí)行sql憎妙,RPC調(diào)用接口…厘唾,現(xiàn)在我們有一條數(shù)據(jù)的請求是2百萬/秒,很顯然服務(wù)器hold不住了抚垃,會各種拒絕訪問,甚至崩潰铣焊,宕機(jī)罕伯,怎么辦呢。

一臺機(jī)器解決不了的問題坟募,那就兩臺邑狸。所以我們加一臺機(jī)器,每臺承擔(dān)1百萬昂利。如果請求繼續(xù)增加呢,兩臺解決不了的問題蜂奸,那就三臺唄扩所。

這種方式我們稱之為水平擴(kuò)展。如何實現(xiàn)請求的平均分配便是負(fù)載均衡了助赞。

2袁勺、垂直擴(kuò)展:(按功能分)

另一個栗子,我們現(xiàn)在有兩個數(shù)據(jù)請求群叶,數(shù)據(jù)1請求90萬钝荡,數(shù)據(jù)2請求80萬,上面那臺機(jī)器也hold不住埠通,我們加一臺機(jī)器來負(fù)載均衡一下端辱,每臺機(jī)器處理45萬數(shù)據(jù)1和40萬數(shù)據(jù)2,但是平分太麻煩舞蔽,不如一臺處理數(shù)據(jù)1喷鸽,一臺處理數(shù)據(jù)2灸拍,同樣能解決問題,這種方式我們稱之為垂直拆分混槐。

五轩性、分布式技術(shù):

1.分布式系統(tǒng)的架構(gòu)體系

  基于對象的體系機(jī)構(gòu)

  面向服務(wù)的架構(gòu)(SOA)

  REST風(fēng)格的架構(gòu)

  微服務(wù)架構(gòu)(MSA)

  容器技術(shù)

  Serverless架構(gòu)

2.分布式消息服務(wù)

  Apache ActiveMQ

? ? ? RabbitMQ

  RocketMQ

  Apache Kafka

3.分布式計算

  MapReduce

Apache Hadoop

  Apache Spark

  Apache Mesos

4.分布式存儲

  Bigtable

  Apache HBase

  Apache Cassandra

  Memcached

  Redis

  MongoDB

5.分布式監(jiān)控

  Nagios

  Zabbix

  Consul

  Zookeeper

6.分布式的版本控制

  Bazaar

  Mercurial

  Git

7.RESTfulAPI、微服務(wù)及容器技術(shù)

  Jersey

  Spring boot

  Docker


常用分布式互聯(lián)網(wǎng)系統(tǒng)悯嗓,使用較多的是zookeeper+dubbo組合,而Springboot推薦使用全棧Spring铅祸,就是Springboot+SpringCloud合武。

Cloud與Dubbo的區(qū)別稼跳,Dubbo解決的就是遠(yuǎn)程過程調(diào)用的RPC服務(wù),而Cloud更全面汤善,它有一整套的分布式需要的對應(yīng)的解決方案:配置管理、服務(wù)發(fā)現(xiàn)卸伞、熔斷锉屈、路由、微代理遂黍、控制總線俊嗽、一次性token绍豁、全局鎖、leader選舉竹揍、分布式session、集群狀態(tài)无拗。所以使用Cloud可以更快速的與云平臺進(jìn)行對接昧碉。

SpringCloud五大常用組件:

服務(wù)發(fā)現(xiàn)-Netflix Eureka

客服端負(fù)載均衡-Netflix Ribbon

斷路器-Netflix Hystrix

服務(wù)網(wǎng)關(guān)-Netflix Zuul

分布式配置-SpringCloudConfig

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搪搏,隨后出現(xiàn)的幾起案子箭养,更是在濱河造成了極大的恐慌,老刑警劉巖喝检,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撼泛,死亡現(xiàn)場離奇詭異愿题,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)潘酗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門仔夺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人日裙,你說我怎么就攤上這事惰蜜。” “怎么了格侯?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵养交,是天一觀的道長瓢宦。 經(jīng)常有香客問我灰羽,道長鱼辙,這世上最難降的妖魔是什么玫镐? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任恐似,我火速辦了婚禮,結(jié)果婚禮上葛闷,老公的妹妹穿的比我還像新娘双藕。我一直安慰自己,他們只是感情好扣泊,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布延蟹。 她就那樣靜靜地躺著叶堆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俯萌。 梳的紋絲不亂的頭發(fā)上上枕,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機(jī)與錄音棋恼,去河邊找鬼锈玉。 笑死,一個胖子當(dāng)著我的面吹牛师崎,可吹牛的內(nèi)容都是我干的椅棺。 我是一名探鬼主播齐蔽,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼含滴,長吁一口氣:“原來是場噩夢啊……” “哼丐巫!你這毒婦竟也來了递胧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泼诱,失蹤者是張志新(化名)和其女友劉穎赊锚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耸袜,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡牲平,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年纵柿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沟使。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腊嗡,死狀恐怖拾酝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒿囤,我是刑警寧澤客们,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響底挫,放射性物質(zhì)發(fā)生泄漏嗽桩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一凄敢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧湿痢,春花似錦涝缝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滩援,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間塔嬉,已是汗流浹背玩徊。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留谨究,地道東北人恩袱。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像胶哲,于是被迫代替她去往敵國和親畔塔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容