日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

承载千万级并发的分布式系统架构设计思想

發(fā)布時(shí)間:2025/3/21 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 承载千万级并发的分布式系统架构设计思想 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要: 1、服務(wù)器集群、負(fù)載均衡 毫無疑問,程序?qū)懙迷俸?#xff0c;只能最大利用一臺(tái)服務(wù)器的性能,讓單臺(tái)服務(wù)器能夠支持更多的人訪問請(qǐng)求。但別忘了,單臺(tái)服務(wù)器性能再高也是有限的,帶寬也是有限的,要想支撐更多的并發(fā)量,只能采用多服務(wù)器集群方式,每臺(tái)服務(wù)器支撐一定數(shù)量的并發(fā),這就是負(fù)載均衡概念。

看了很多文章,都是關(guān)注微觀細(xì)節(jié)上優(yōu)化,而我喜歡從大的往小的說。


1、服務(wù)器集群、負(fù)載均衡

???? 毫無疑問,程序?qū)懙迷俸?#xff0c;只能最大利用一臺(tái)服務(wù)器的性能,讓單臺(tái)服務(wù)器能夠支持更多的人訪問請(qǐng)求。但別忘了,單臺(tái)服務(wù)器性能再高也是有限的,

帶寬也是有限的,要想支撐更多的并發(fā)量,只能采用多服務(wù)器集群方式,每臺(tái)服務(wù)器支撐一定數(shù)量的并發(fā),這就是負(fù)載均衡概念。

??? 負(fù)載均衡分為硬件負(fù)載均衡(如F5、dns負(fù)載均衡)和軟件負(fù)載均衡(如Nginx/LVS/HAProxy),硬件級(jí)負(fù)載均衡轉(zhuǎn)發(fā)到的必須是具有外部ip的服務(wù)器,而這臺(tái)服務(wù)器又是一臺(tái)軟件負(fù)載均衡服務(wù)器,轉(zhuǎn)發(fā)給內(nèi)部局域網(wǎng)的多臺(tái)服務(wù)器,最終接入web系統(tǒng)。

??? 一般來說,一臺(tái)搭建有Nginx/LVS/HAProxy 的軟件負(fù)載均衡服務(wù)器,支撐的并發(fā)數(shù)在5萬以內(nèi)(理論最高值),正常在一半(2.5萬)左右,要考慮并發(fā)量在千萬級(jí),那就需要400臺(tái)以上的具有外部ip的軟件負(fù)載均衡服務(wù)器。


2、web網(wǎng)站集群、緩存集群、session集群

???? 每一臺(tái)最終用戶接入的服務(wù)器都部署完全一樣的web服務(wù),這些web程序雖然可以統(tǒng)一連接數(shù)據(jù)庫作為數(shù)據(jù)全局共享,但是數(shù)據(jù)庫連接操作影響了很大的性能,所以需要使用緩存數(shù)據(jù)提高性能,這些緩存數(shù)據(jù)可能分布在不同的服務(wù)器中,為了保持?jǐn)?shù)據(jù)的一致性,必須同步共享。個(gè)人數(shù)據(jù)保存在Session中也一樣,每臺(tái)服務(wù)器保存的Session數(shù)據(jù)也需要同步。

??? 這些數(shù)據(jù)的集群共享,已經(jīng)有很多成熟的方案,比如 mecached session manager 等。


3、數(shù)據(jù)庫集群

?????數(shù)據(jù)庫服務(wù)器集群無非也是想達(dá)到負(fù)載均衡提高吞吐量的作用,傳統(tǒng)的數(shù)據(jù)庫如 MySQL /oracle/ sqlserver 等,可以采用分布式安裝部署,通過分表分區(qū)技術(shù)達(dá)到負(fù)載均衡,但是,為了保護(hù)數(shù)據(jù)的一致性,只能均衡讀操作的負(fù)載,無法均衡寫操作的負(fù)載,也就是插入數(shù)據(jù)庫時(shí),還是采用只在中心服務(wù)器插入,然后復(fù)制到其他服務(wù)器,這就導(dǎo)致了瓶頸出現(xiàn)在中心服務(wù)器的插入性能上。


4、內(nèi)存數(shù)據(jù)庫

??? 內(nèi)存操作比傳統(tǒng)數(shù)據(jù)庫采用的磁盤讀寫操作,速度上不是一個(gè)量級(jí)的,如果中心數(shù)據(jù)庫采用內(nèi)存數(shù)據(jù)庫,那么將會(huì)很好地解決插入瓶頸的問題,大大提高并發(fā)量。

??? gemfire是比較成熟商業(yè)化的內(nèi)存數(shù)據(jù)庫,現(xiàn)在已經(jīng)有了開源版本,據(jù)說12306就是采用它,缺點(diǎn)是開發(fā)文檔比較少。

??? mongodb是開源的比較有影響力的內(nèi)存數(shù)據(jù)庫,基于類json格式結(jié)構(gòu)數(shù)據(jù)庫,比較靠近關(guān)系型數(shù)據(jù)庫,用于統(tǒng)計(jì)查詢過濾的系統(tǒng)是很好的選擇。

??? redis 是純key-value的緩存數(shù)據(jù)庫,結(jié)構(gòu)比較單一,用作緩存比較合適。


5、緩存數(shù)據(jù)集群

?? 緩存數(shù)據(jù)可以減少數(shù)據(jù)庫的頻繁操作,提高性能,但是為了保證數(shù)據(jù)的一致性,這些分布在不同服務(wù)器的緩存數(shù)據(jù)需要集群共享。

?? mecached 是不錯(cuò)的分布式緩存。


6、session集群

??? 用戶數(shù)據(jù)一般保存在session中,類似于緩存數(shù)據(jù),Session數(shù)據(jù)也需要集群共享。

?? mecached session manager 是值得推薦的 集群Session方案。


7、獨(dú)立文件存儲(chǔ)服務(wù)器

?? 說完了服務(wù)器集群,現(xiàn)在該說怎么優(yōu)化單臺(tái)服務(wù)器性能了。

?? 下載文件,顯示圖片,這些都是占用很大帶寬的資源,帶寬不夠,還會(huì)消耗cpu性能。

?? 我們把文件和圖片都保存到獨(dú)立的文件服務(wù)器里,這樣web服務(wù)器就會(huì)只負(fù)責(zé)運(yùn)算和傳輸少量文字內(nèi)容,顯示圖片或下載文件轉(zhuǎn)向文件服務(wù)器,顯示圖片或下載文件慢也不會(huì)影響后面的用戶操作,增加高并發(fā)量。當(dāng)然,文件服務(wù)器也可以多臺(tái)鏡像服務(wù)器負(fù)載均衡提高下載速度。


8、html靜態(tài)化

??? 很多數(shù)據(jù)庫里的固定資源(比如新聞內(nèi)容)可以查詢出來后轉(zhuǎn)成html頁面,這樣就不需要每次都去查詢數(shù)據(jù)庫,直接訪問html頁面提高速度。

??? 值得注意的是,html靜態(tài)化只適用于某些特定場合,很多系統(tǒng)是無法靜態(tài)化的,不要抱以太高的希望。


就這些了,可能還有些沒想到的方面。

關(guān)注我寫的開源框架? ErpCore & BigCore ,

下載源碼到? http://www.8088net.com

總結(jié)

以上是生活随笔為你收集整理的承载千万级并发的分布式系统架构设计思想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。