高併發的解決方案 --- 整個企業網站架構分析

【整個企業網站架構分析 】html

1)在集羣下,Session是如何共享的三種方案(優劣對比) 2)在集羣下,N多臺App服務器是如何被轉發的(提出幾種方案,優劣對比,採用最好的方案)mysql

3)在集羣下,N多臺是如何被鏈接的(提出二種方案,優劣對比,採用最好的方案)linux

4)在集羣下,整個網站的瓶頸在哪裏?nginx

5)大數據(hadoop)在企業的整個架構中,處在什麼地位,有什麼做用?web

【訪問人數過多時,而引發的高併發解決方案(原理,搭建,演示) 】sql

1)支持App服務器出現故障時,主服務器能自動將其移除任務列表數據庫

2)支持App服務器恢復正常時,主服務器能自動將其添加回任務列表vim

3...windows

負載均衡服務器高併發centos

企業高併發概念出自阿里巴巴研究院

什麼是高併發:多個進程或者線程同時(或者在同一段時間內)訪問統一資源會產生的併發問題

3.高併發初期解決方案:

3.1系統或服務器級別解決方案:

①增大服務器的CPU

②增長內存條

③增長硬盤個數,對硬盤作Radis

④換掉免費的tomcat,使用商用weblogic(美國Oracle公司出品的)

⑤增長到二塊網卡

⑥聘請系統架構師優化Linux內核

⑦甚至花高價直接購買高性能的服務器

隨着業務的不斷增長,服務器性能很快又達到瓶頸

3.2 應用級別的解決方案

① 網頁HTML靜態化(須要CMS項目支持)

②圖片服務器分離(經常使用解決方案)

③緩存(經常使用解決方案)上上策爲分佈式緩存

④ 鏡像(下載較多)

3.3 解決用戶IP多了的辦法是?

開始使用DNS:

缺點:雖然循環複用DNS是一個廣泛使用的在Web服務器上負載平衡的解決方案,可是,該方式有它自身的缺陷。循環複用DNS將傳入的IP請求映射到定義的一系列循環形式的服務器。一旦發生服務器故障,循環複用DNS繼續把請求發送到這個故障服務器,一直到把該服務器從DNS中移走爲止。這樣許多用戶必須等到DNS鏈接超時之後才能成功的訪問目的網站。

終極解決方案:

採用負載均衡技術

3.4 負載均衡

(1) 負載均衡服務器的三大功能:

①轉發:在用戶請求,轉發請求的功能

②故障移除:若是這一臺機器掛了,負載均衡服務器不會再把請求轉發到這臺服務器

③恢復添加:若是這一臺機器恢復正常了,負載均衡服務器會把它從新添加回來

(2)負載均衡服務器種類--經過軟硬件角度:

①經過硬件來解決:NetScaler、F五、Radware和Array等商用的負載均衡器,它們性能好,可是價格比較昂貴的

②經過軟件來解決(反向代理服務器 緩存服務器等),三大軟件:

LVS(Linux Virtual Server):最好的軟件策略,有備機有主機,無單點問題,國產(阿里章文嵩博士)開源項目,工做在網絡四層上

Nginx:Ngnix有」單點故障「的問題,若是掛了,會帶來不少的麻煩。到了後期Web服務器繼續增長,它自己可能會成爲系統的瓶頸

nginx最高支持50000個併發鏈接數,工做在網路七層上

Apache:web服務器第一,但不是最好的負載均衡服務器,工做在網路七層上

LVS對比NGinx

負載度: LVS KO Ngnix

功能多少:Nginx KO LVS

穩定度:LVS KO Nginx

服務器性能要求:LVS KO Nginx

效率最高的負載均衡技術中,最高的就是IP負載均衡技術。IP虛擬服務器軟件(IPVS)是在Linux內核中實現的,LVS就是使用的IP負載均衡技術

(3) 經常使用的高可用方案(HA)都包括兩種機器,LVS:

主機 備機

(4) 經常使用的服務器

tomcat

weblogic(大公司,追求穩定)

(5) 經常使用數據庫

mysql、oracle 、mssql

稱爲高可用(HA)

(6) 高併發發生在兩處

① 負載均衡服務器

②數據庫

(7) 應用服務器會出現的問題和解決方案

①多臺服務器下用戶登陸了,session是如何共享的

②用戶請求一號機器時候產生了session,用戶請求二號機時候就沒有session了,後果就是程序把用戶踢到登陸頁面

解決方案(三種):

①能夠把用戶的session放在cookie中

優勢:解決了session沒有的問題

缺點:session放在了用戶的瀏覽器中,是不安全的

②能夠把用戶的session放在數據庫中

優勢:解決了session沒有的問題

缺點:網站是一個成千上萬用戶的網站,若是把session放在數據庫中,會形成數據庫壓力太大,從而使得網站不能正常運轉

③能夠把用戶的session放在緩存服務器中

最好的解決方案是放在緩存服務器中

推薦兩種緩存服務器:Memcache、Redis

要求:Memecache、Redis必須是集羣

(8) 數據庫併發

①要求:隨着業務量的不斷增大,數據庫承載能力也要增大

②要求:數據安全,不能丟失

③要求:支持備份+容災

(9)Hadoop集羣和RDMS之間數據處理流程:

①經過sqoop把關係型數據庫的數據導入到HDFS中

②把HDFS中的數據通過MapReduce進行計算及處理

③將處理後的解決數據寫回到HDFS文件系統

④把結果數據倒回關係型數據庫

⑤將關係型數據庫的數據造成報表展現

4.分析完企業總體架構後,開始搭建負載均衡服務器,並演示效果

4.1搭建LVS負載均衡,場景描述:

開啓四臺Linux系統(Centos6.4)

第一臺:負載均衡主機

第二臺:負載均衡備機

第三臺:真實服務器(http服務器)

第四臺:真實服務器(http服務器)

http服務器是Apache公司的服務器,在linux系統上自帶的,能夠直接使用,方便快捷

4.2 準備開始搭建,搭建成功後,演示剛纔說的那三個功能

4.2.1驗證功能:

①轉發功能

②故障移除的功能

③恢復添加的功能

④主機關了,備機是否接管它的工做

環境:window7 系統

VMware虛擬機,在虛擬機上啓動四臺Centos6.4服務器

i5cpu 500G磁盤 內存:8G

心跳檢測機制

4.2.2 三種IP:

負載均衡IP:所在服務器IP

VIP:LVS這個軟件的IP,正是咱們要訪問的IP

192.168.200.201 訪問IP

真實服務器RIP(realIP)

4.2.3 IP分配

149: 負載均衡服務器

150: 負載均衡服務器

151: Http服務器

152: Http服務器

4.2.4 啓動Http服務器

啓動Http服務器命令:

service httpd start

查看防火牆的狀態:

service iptable status

關閉防火牆:

service iptables stop

完全關閉防火牆:

chkconfig iptables off

Http服務器應該不同,轉發的時候才能知道轉發到哪裏了

cd /var/www/html/

vim index.html

輸入內容: I am http 151,保存退出

而後再兩臺服務器上添加端口

cd /etc/init.d/

vim realserver

粘貼內容,保存退出

chmod 755 realserver

service realserver start

ifconfig查看,若是出現一個虛擬ip(lo:0 192.168.200.201),則說明啓動成功

4.2.5 搭建負載均衡主機

安裝keepalived軟件

uname -a 查看當前機器系統內核

上傳keepalived軟件到服務器目錄下:

安裝keepalived軟件命令:

rpm -ivh keepalived-版本號

查看軟件安裝在哪裏:

rpm -ql keepalived-版本號

查找配置文件的位置,而後編輯配置文件:

vim /etc/keepalived/keepalived.conf

> /etc/keepalived/keepalived.conf (>能夠用於清除內容)

vim /etc/keepalived/keepalived.conf,複製配置到配置文件裏面,wq保存

149防火牆也要記得關閉

啓動服務:

service keepalived start

tail -f /var/message,查看日誌信息

4.2.6 驗證三大功能

搭建完成,在瀏覽器輸入訪問IP(VIP)查看

VIP(訪問IP)http://192.168.200.201 訪問IP

1)轉發功能:151 152,發現能夠在兩臺HTTP服務器之間切換

2)故障移除: 把152機器手動關掉,再查看效果

service httpd stop,訪問152出現無法鏈接的效果

在訪問VIP發現始終是訪問的151機器,證實負載均衡有故障移除的功能

3) 恢復添加

把152機器再手動啓動,再查看效果

service httpd start,發現152從新啓動了,再 訪問VIP發現能夠從新再兩臺ftp服務器之間切換了

證實:負載均衡有恢復添加的功能

4)負載均衡主機關了,備機是否接管它的工做

搭建備機,150機器上搭建,和上面的步驟同樣

配置文件中將state Master修改爲state BACKUP

搭建備機成功

關閉負載均衡主機149機器,查看150機器是否接管它的工做

service keepalived stop

證實負載均衡主機關閉了,備用機確實接管了他的工做

負載均衡主機備機搭建成功,負載均衡的功能驗證經過!

備註:

1.201IP是LVS的IP,訪問IP(VIP)

2.LVS比例:權重是能夠分配的,上面的演示是1:1

3.http是Centos自帶的,用tomcat也是能夠的,可是用tomcat,要安裝JDK,爲了節約時間才選用http服務器的

4.兩臺tomcat服務器和兩臺Http服務器使用方法是同樣的,就是給Tomcat的默認8080端口改爲80端口

5.LVS要安裝嗎?

不須要安裝,LVS linux虛擬機,是linux自帶的,要求內核是2.6版本之後就支持了,不須要安裝

6.windows下安裝是很是不專業的,企業級服務器都是用linux服務器(redHat、centos)

7.LVS主機配置的Master,備機配置的BACKUP

8.經過心跳檢查機制檢查主機宕機了,而後切換到備機(RPC)

9.主機和備機 屬性Master和Backup 優先級

相關文章
相關標籤/搜索