【整個企業網站架構分析 】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) 經常使用數據庫
稱爲高可用(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 優先級