2021-01-27 分類: 網(wǎng)站建設(shè)
歡迎關(guān)注頭條號(hào):老顧聊技術(shù)
精品原創(chuàng)技術(shù)分享,知識(shí)的組裝工
我們小伙伴們是不是經(jīng)常看到網(wǎng)上一些集群、高可用、高并發(fā)、負(fù)載均衡等關(guān)鍵詞,有很多種方案、以及應(yīng)用場(chǎng)景中都有相關(guān)的介紹。今天老顧就帶著大家一起看一下,一整套大型網(wǎng)站會(huì)有哪些負(fù)載均衡方案場(chǎng)景。
創(chuàng)業(yè)初期很多資源的限制,一切以業(yè)務(wù)為核心,能夠正常使用就可以了,因?yàn)榱髁坎皇呛艽螅赃@個(gè)階段的什么集群、高可用、負(fù)載均衡就沒有了
這個(gè)階段服務(wù)器的不可用,影響不是太大,因?yàn)樵趪L試階段,都是種子用戶進(jìn)行嘗試業(yè)務(wù)
業(yè)務(wù)得到市場(chǎng)認(rèn)可,用戶活躍基數(shù)慢慢變大,需要考慮到系統(tǒng)的可用性和負(fù)載問題
到這個(gè)階段一般會(huì)保證web應(yīng)用服務(wù)的可用性和負(fù)載,做Web應(yīng)用集群。這個(gè)利用nginx的負(fù)載均衡的功能。保證用戶基本服務(wù)。這里就第一個(gè)負(fù)載均衡場(chǎng)景。
web服務(wù)的集群化,就會(huì)碰到用戶session的問題,所以需要添加一臺(tái)redis服務(wù)器做分布式會(huì)話。
有些系統(tǒng)的session會(huì)話方案,采用本地化方案,利用jwt+token的方式,他們會(huì)不需要redis服務(wù)器保存session會(huì)話。
也有用jwt 和 redis會(huì)話服務(wù)器相結(jié)合的方案,這樣可以解決jwt的缺點(diǎn)問題。這里老顧就不多講了。
這個(gè)階段是業(yè)務(wù)發(fā)展最快的階段,業(yè)務(wù)的多變性,以及用戶流量已經(jīng)到了一定的規(guī)模,要考慮系統(tǒng)的可用性了,數(shù)據(jù)量也有一定的規(guī)模。這時(shí)是系統(tǒng)進(jìn)入促步改造的時(shí)期。
一、業(yè)務(wù)微服務(wù)化
為了保證業(yè)務(wù)的多變,我們需要把各自業(yè)務(wù)進(jìn)行解耦,這邊需要的技術(shù)Dubbo或Spring Cloud微服務(wù)框架。這兩個(gè)框架都支持微服務(wù)集群部署,以及調(diào)用方的負(fù)載均衡。如下圖的訂單微服務(wù)會(huì)部署幾個(gè)訂單微服務(wù),形成集群,web服務(wù)調(diào)用方會(huì)做負(fù)載均衡的調(diào)用。這邊就涉及到了第二個(gè)負(fù)載均衡的場(chǎng)景,是利用微服務(wù)框架自身的功能。
二、分布式緩存
活躍用戶的增大,會(huì)對(duì)DB數(shù)據(jù)庫的訪問壓力過大,這個(gè)時(shí)候會(huì)考慮增加緩存層來幫助DB減壓。在進(jìn)行分布式緩存進(jìn)行規(guī)劃時(shí),會(huì)用到redis集群作為緩存。redis集群方案中利用哈希槽的方式,達(dá)到了緩存數(shù)據(jù)量的拆分,以及負(fù)載均衡。這個(gè)就是第三個(gè)負(fù)載均衡場(chǎng)景
三、nginx集群
用戶并發(fā)到了幾千的時(shí)候,就要考慮到nginx的高可用,雖然nginx的性能比較高,但也經(jīng)不起量大啊。利用LVS來實(shí)現(xiàn)nginx的高可用和負(fù)載均衡,這個(gè)又是一個(gè)負(fù)載均衡場(chǎng)景
此階段的業(yè)務(wù)已經(jīng)趨于穩(wěn)定,數(shù)據(jù)量也越有越大,用戶活躍也很大;業(yè)務(wù)復(fù)雜度很高,已經(jīng)業(yè)務(wù)流程多變,市場(chǎng)規(guī)模發(fā)展到全國,有多機(jī)房多區(qū)域的部署的需求。公司規(guī)模大了以后,網(wǎng)絡(luò)安全就顯得尤為重要。系統(tǒng)一定要保證穩(wěn)定
一、分庫分表
數(shù)據(jù)庫單表如果超過300多萬條記錄時(shí),就要考慮到分表;數(shù)據(jù)庫的IO操作已經(jīng)一直處于高負(fù)荷狀態(tài),就可以考慮把業(yè)務(wù)進(jìn)行拆分到不同的DB中,以及數(shù)據(jù)庫的主從設(shè)計(jì)實(shí)現(xiàn)讀寫分離,設(shè)計(jì)來降低DB負(fù)載和高可用。
分庫分表中可以采用兩種方案,一種代理層方案,如:MyCat框架;一種是客戶端實(shí)現(xiàn),如sharding-jdbc。這個(gè)又是一種在數(shù)據(jù)庫層的負(fù)載均衡場(chǎng)景
二、消息中間件
業(yè)務(wù)的復(fù)雜度高,需要很好的拆分業(yè)務(wù),更進(jìn)一步的業(yè)務(wù)解耦,以及高并發(fā)下限流會(huì)用到消息中間件,如:RocketMQ,RabbitMQ。
還有分布式事務(wù)中,為了保證最終一致性,也會(huì)用到消息中間件。
消息中間件是天生的集群化,保證消息中間件的高可用以及負(fù)載均衡,有這個(gè)是消息隊(duì)列層的負(fù)載均衡場(chǎng)景。
三、網(wǎng)關(guān)
在分布式架構(gòu)下,為了進(jìn)行統(tǒng)一的路由,鑒權(quán),限流,監(jiān)控等;這個(gè)時(shí)候就要上網(wǎng)關(guān),現(xiàn)在網(wǎng)關(guān)框架為:Kong,Zuul,GateWay,Soul等,這些框架也是集群化的。部署到nginx層下面(kong可以直接替換nginx,因?yàn)榫褪窃趎ginx基礎(chǔ)上設(shè)計(jì)的)架設(shè)網(wǎng)關(guān)層。這個(gè)是網(wǎng)關(guān)層的負(fù)載均衡場(chǎng)景
四、跨機(jī)房
業(yè)務(wù)時(shí)全國市場(chǎng),甚至全球市場(chǎng)的話,因?yàn)榈貐^(qū)網(wǎng)絡(luò)節(jié)點(diǎn)是按照地區(qū)架設(shè)的,所以要保證多地區(qū)能夠快速訪問我們的網(wǎng)站,這個(gè)時(shí)候就需要做多機(jī)房的設(shè)計(jì)。多機(jī)房的設(shè)計(jì)就是利用了DNS,這個(gè)就是DNS層的負(fù)載均衡
到達(dá)這一步的話,一般在同一機(jī)房下,會(huì)部署幾套系統(tǒng)集群方案,這個(gè)時(shí)候一般在機(jī)房里面會(huì)加入硬件負(fù)載均衡器,如:F5,A10;硬件負(fù)載均衡器是蠻貴的,不過公司已經(jīng)發(fā)展到這個(gè)地步了,應(yīng)該有錢了。
涉及到跨機(jī)房,系統(tǒng)設(shè)計(jì)的時(shí)候就會(huì)非常復(fù)雜,尤其要考慮到機(jī)房間數(shù)據(jù)如何共享,同步?這些點(diǎn)老顧在以后的文章中會(huì)介紹,跨機(jī)房要解決什么問題?
不允許有單點(diǎn)故障,就需要集群化,一旦有集群化的地方,肯定會(huì)有負(fù)載均衡的場(chǎng)景應(yīng)用。
大型系統(tǒng)的發(fā)展,是根據(jù)業(yè)務(wù)發(fā)展而來的,在業(yè)務(wù)沒有達(dá)到一定的程度時(shí),要選擇合適的系統(tǒng)設(shè)計(jì),不能超前選擇很復(fù)雜的方案,會(huì)導(dǎo)致開發(fā)周期會(huì)很長(zhǎng),系統(tǒng)也會(huì)變的復(fù)雜,沒有必要,這一點(diǎn)是技術(shù)老大需要重視的。
當(dāng)前名稱:一整套大型網(wǎng)站會(huì)有哪些負(fù)載均衡方案場(chǎng)景
轉(zhuǎn)載源于:http://www.rwnh.cn/news/97716.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、App設(shè)計(jì)、微信公眾號(hào)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容