【整個(gè)企業(yè)網(wǎng)站架構(gòu)分析 】
1)在集群下,Session是如何共享的三種方案(優(yōu)劣對比) 2)在集群下,N多臺(tái)App服務(wù)器是如何被轉(zhuǎn)發(fā)的(提出幾種方案,優(yōu)劣對比,采用最好的方案)
3)在集群下,N多臺(tái)數(shù)是如何被連接的(提出二種方案,優(yōu)劣對比,采用最好的方案)
4)在集群下,整個(gè)網(wǎng)站的瓶頸在哪里?
5)大數(shù)據(jù)(hadoop)在企業(yè)的整個(gè)架構(gòu)中,處在什么地位,有什么作用?
【訪問人數(shù)過多時(shí),而引起的高并發(fā)解決方案(原理,搭建,演示) 】
1)支持App服務(wù)器出現(xiàn)故障時(shí),主服務(wù)器能自動(dòng)將其移除任務(wù)列表
2)支持App服務(wù)器恢復(fù)正常時(shí),主服務(wù)器能自動(dòng)將其添加回任務(wù)列表
3...
負(fù)載均衡服務(wù)器高并發(fā)
企業(yè)高并發(fā)概念出自阿里巴巴研究院
什么是高并發(fā):多個(gè)進(jìn)程或者線程同時(shí)(或者在同一段時(shí)間內(nèi))訪問統(tǒng)一資源會(huì)產(chǎn)生的并發(fā)問題
3.高并發(fā)初期解決方案:
3.1系統(tǒng)或服務(wù)器級(jí)別解決方案:
①增大服務(wù)器的CPU
②增加內(nèi)存條
③增加硬盤個(gè)數(shù)叁鉴,對硬盤做Radis
④換掉免費(fèi)的tomcat透揣,使用商用weblogic(美國Oracle公司出品的)
⑤增加到二塊網(wǎng)卡
⑥聘請系統(tǒng)架構(gòu)師優(yōu)化Linux內(nèi)核
⑦甚至花高價(jià)直接購買高性能的服務(wù)器
隨著業(yè)務(wù)的不斷增加漩蟆,服務(wù)器性能很快又達(dá)到瓶頸
3.2 應(yīng)用級(jí)別的解決方案
① 網(wǎng)頁HTML靜態(tài)化(需要CMS項(xiàng)目支持)
②圖片服務(wù)器分離(常用解決方案)
③緩存(常用解決方案)上上策為分布式緩存
④ 鏡像(下載較多)
3.3 解決用戶IP多了的辦法是?
開始使用DNS:
缺點(diǎn):雖然循環(huán)復(fù)用DNS是一個(gè)普遍使用的在Web服務(wù)器上負(fù)載平衡的解決方案页眯,但是纸俭,該方式有它自身的缺陷虫溜。循環(huán)復(fù)用DNS將傳入的IP請求映射到定義的一系列循環(huán)形式的服務(wù)器墓塌。一旦發(fā)生服務(wù)器故障,循環(huán)復(fù)用DNS繼續(xù)把請求發(fā)送到這個(gè)故障服務(wù)器蚀狰,一直到把該服務(wù)器從DNS中移走為止。這樣許多用戶必須等到DNS連接超時(shí)以后才能成功的訪問目的網(wǎng)站职员。
終極解決方案:
采用負(fù)載均衡技術(shù)
3.4 負(fù)載均衡
(1) 負(fù)載均衡服務(wù)器的三大功能:
①轉(zhuǎn)發(fā):在用戶請求麻蹋,轉(zhuǎn)發(fā)請求的功能
②故障移除:如果這一臺(tái)機(jī)器掛了,負(fù)載均衡服務(wù)器不會(huì)再把請求轉(zhuǎn)發(fā)到這臺(tái)服務(wù)器
③恢復(fù)添加:如果這一臺(tái)機(jī)器恢復(fù)正常了焊切,負(fù)載均衡服務(wù)器會(huì)把它重新添加回來
(2)負(fù)載均衡服務(wù)器種類--通過軟硬件角度:
①通過硬件來解決:NetScaler扮授、F5、Radware和Array等商用的負(fù)載均衡器专肪,它們性能好刹勃,但是價(jià)格比較昂貴的
②通過軟件來解決(反向代理服務(wù)器 緩存服務(wù)器等),三大軟件:
LVS(Linux Virtual Server):最好的軟件策略嚎尤,有備機(jī)有主機(jī)荔仁,無單點(diǎn)問題,國產(chǎn)(阿里章文嵩博士)開源項(xiàng)目芽死,工作在網(wǎng)絡(luò)四層上
Nginx:Ngnix有”單點(diǎn)故障“的問題乏梁,如果掛了,會(huì)帶來很多的麻煩关贵。到了后期Web服務(wù)器繼續(xù)增加遇骑,它本身可能會(huì)成為系統(tǒng)的瓶頸
nginx最高支持50000個(gè)并發(fā)連接數(shù),工作在網(wǎng)路七層上
Apache:web服務(wù)器第一坪哄,但不是最好的負(fù)載均衡服務(wù)器质蕉,工作在網(wǎng)路七層上
LVS對比NGinx
負(fù)載度: LVS KO Ngnix
功能多少:Nginx KO LVS
穩(wěn)定度:LVS KO Nginx
服務(wù)器性能要求:LVS KO Nginx
效率最高的負(fù)載均衡技術(shù)中,最高的就是IP負(fù)載均衡技術(shù)翩肌。IP虛擬服務(wù)器軟件(IPVS)是在Linux內(nèi)核中實(shí)現(xiàn)的,LVS就是使用的IP負(fù)載均衡技術(shù)
(3) 常用的高可用方案(HA)都包括兩種機(jī)器模暗,LVS:
主機(jī) 備機(jī)
(4) 常用的服務(wù)器
tomcat
weblogic(大公司,追求穩(wěn)定)
(5) 常用數(shù)據(jù)庫
稱為高可用(HA)
(6) 高并發(fā)發(fā)生在兩處
① 負(fù)載均衡服務(wù)器
②數(shù)據(jù)庫
(7) 應(yīng)用服務(wù)器會(huì)出現(xiàn)的問題和解決方案
①多臺(tái)服務(wù)器下用戶登錄了,session是如何共享的
②用戶請求一號(hào)機(jī)器時(shí)候產(chǎn)生了session粱坤,用戶請求二號(hào)機(jī)時(shí)候就沒有session了隶糕,后果就是程序把用戶踢到登錄頁面
解決方案(三種):
①可以把用戶的session放在cookie中
優(yōu)點(diǎn):解決了session沒有的問題
缺點(diǎn):session放在了用戶的瀏覽器中,是不安全的
②可以把用戶的session放在數(shù)據(jù)庫中
優(yōu)點(diǎn):解決了session沒有的問題
缺點(diǎn):網(wǎng)站是一個(gè)成千上萬用戶的網(wǎng)站站玄,如果把session放在數(shù)據(jù)庫中枚驻,會(huì)造成數(shù)據(jù)庫壓力太大,從而使得網(wǎng)站不能正常運(yùn)轉(zhuǎn)
③可以把用戶的session放在緩存服務(wù)器中
最好的解決方案是放在緩存服務(wù)器中
推薦兩種緩存服務(wù)器:Memcache株旷、Redis
要求:Memecache再登、Redis必須是集群
(8) 數(shù)據(jù)庫并發(fā)
①要求:隨著業(yè)務(wù)量的不斷增大尔邓,數(shù)據(jù)庫承載能力也要增大
②要求:數(shù)據(jù)安全,不能丟失
③要求:支持備份+容災(zāi)
(9)Hadoop集群和RDMS之間數(shù)據(jù)處理流程:
①通過sqoop把關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)入到HDFS中
②把HDFS中的數(shù)據(jù)經(jīng)過MapReduce進(jìn)行計(jì)算及處理
③將處理后的解決數(shù)據(jù)寫回到HDFS文件系統(tǒng)
④把結(jié)果數(shù)據(jù)倒回關(guān)系型數(shù)據(jù)庫
⑤將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)形成報(bào)表展示
4.分析完企業(yè)整體架構(gòu)后锉矢,開始搭建負(fù)載均衡服務(wù)器梯嗽,并演示效果
4.1搭建LVS負(fù)載均衡,場景描述:
開啟四臺(tái)Linux系統(tǒng)(Centos6.4)
第一臺(tái):負(fù)載均衡主機(jī)
第二臺(tái):負(fù)載均衡備機(jī)
第三臺(tái):真實(shí)服務(wù)器(http服務(wù)器)
第四臺(tái):真實(shí)服務(wù)器(http服務(wù)器)
http服務(wù)器是Apache公司的服務(wù)器沽损,在linux系統(tǒng)上自帶的灯节,可以直接使用,方便快捷
4.2 準(zhǔn)備開始搭建绵估,搭建成功后炎疆,演示剛才說的那三個(gè)功能
4.2.1驗(yàn)證功能:
①轉(zhuǎn)發(fā)功能
②故障移除的功能
③恢復(fù)添加的功能
④主機(jī)關(guān)了,備機(jī)是否接管它的工作
環(huán)境:window7 系統(tǒng)
VMware虛擬機(jī)壹士,在虛擬機(jī)上啟動(dòng)四臺(tái)Centos6.4服務(wù)器
i5cpu 500G磁盤 內(nèi)存:8G
心跳檢測機(jī)制
4.2.2 三種IP:
負(fù)載均衡IP:所在服務(wù)器IP
VIP:LVS這個(gè)軟件的IP磷雇,正是我們要訪問的IP
192.168.200.201 訪問IP
真實(shí)服務(wù)器RIP(realIP)
4.2.3 IP分配
149: 負(fù)載均衡服務(wù)器
150: 負(fù)載均衡服務(wù)器
151: Http服務(wù)器
152: Http服務(wù)器
4.2.4 啟動(dòng)Http服務(wù)器
啟動(dòng)Http服務(wù)器命令:
service httpd start
查看防火墻的狀態(tài):
service iptable status
關(guān)閉防火墻:
service iptables stop
徹底關(guān)閉防火墻:
chkconfig iptables off
Http服務(wù)器應(yīng)該不一樣,轉(zhuǎn)發(fā)的時(shí)候才能知道轉(zhuǎn)發(fā)到哪里了
cd /var/www/html/
vim index.html
輸入內(nèi)容: I am http 151躏救,保存退出
然后再兩臺(tái)服務(wù)器上添加端口
cd /etc/init.d/
vim realserver
粘貼內(nèi)容,保存退出
chmod 755 realserver
service realserver start
ifconfig查看螟蒸,如果出現(xiàn)一個(gè)虛擬ip(lo:0 192.168.200.201)盒使,則說明啟動(dòng)成功
4.2.5 搭建負(fù)載均衡主機(jī)
安裝keepalived軟件
uname -a 查看當(dāng)前機(jī)器系統(tǒng)內(nèi)核
上傳keepalived軟件到服務(wù)器目錄下:
安裝keepalived軟件命令:
rpm -ivh keepalived-版本號(hào)
查看軟件安裝在哪里:
rpm -ql keepalived-版本號(hào)
查找配置文件的位置,然后編輯配置文件:
vim /etc/keepalived/keepalived.conf
> /etc/keepalived/keepalived.conf (>可以用于清除內(nèi)容)
vim /etc/keepalived/keepalived.conf七嫌,復(fù)制配置到配置文件里面少办,wq保存
149防火墻也要記得關(guān)閉
啟動(dòng)服務(wù):
service keepalived start
tail -f /var/message,查看日志信息
4.2.6 驗(yàn)證三大功能
搭建完成诵原,在瀏覽器輸入訪問IP(VIP)查看
VIP(訪問IP)http://192.168.200.201 訪問IP
1)轉(zhuǎn)發(fā)功能:151 152英妓,發(fā)現(xiàn)可以在兩臺(tái)HTTP服務(wù)器之間切換
2)故障移除: 把152機(jī)器手動(dòng)關(guān)掉,再查看效果
service httpd stop,訪問152出現(xiàn)沒法連接的效果
在訪問VIP發(fā)現(xiàn)始終是訪問的151機(jī)器绍赛,證明負(fù)載均衡有故障移除的功能
3) 恢復(fù)添加
把152機(jī)器再手動(dòng)啟動(dòng)蔓纠,再查看效果
service httpd start,發(fā)現(xiàn)152重新啟動(dòng)了吗蚌,再 訪問VIP發(fā)現(xiàn)可以重新再兩臺(tái)ftp服務(wù)器之間切換了
證明:負(fù)載均衡有恢復(fù)添加的功能
4)負(fù)載均衡主機(jī)關(guān)了腿倚,備機(jī)是否接管它的工作
搭建備機(jī),150機(jī)器上搭建,和上面的步驟一樣
配置文件中將state Master修改成state BACKUP
搭建備機(jī)成功
關(guān)閉負(fù)載均衡主機(jī)149機(jī)器蚯妇,查看150機(jī)器是否接管它的工作
service keepalived stop
證明負(fù)載均衡主機(jī)關(guān)閉了敷燎,備用機(jī)確實(shí)接管了他的工作
負(fù)載均衡主機(jī)備機(jī)搭建成功,負(fù)載均衡的功能驗(yàn)證通過!
備注:
1.201IP是LVS的IP箩言,訪問IP(VIP)
2.LVS比例:權(quán)重是可以分配的硬贯,上面的演示是1:1
3.http是Centos自帶的,用tomcat也是可以的陨收,但是用tomcat饭豹,要安裝JDK,為了節(jié)約時(shí)間才選用http服務(wù)器的
4.兩臺(tái)tomcat服務(wù)器和兩臺(tái)Http服務(wù)器使用方法是一樣的,就是給Tomcat的默認(rèn)8080端口改成80端口
5.LVS要安裝嗎?
不需要安裝,LVS linux虛擬機(jī)墨状,是linux自帶的卫漫,要求內(nèi)核是2.6版本以后就支持了,不需要安裝
6.windows下安裝是非常不專業(yè)的肾砂,企業(yè)級(jí)服務(wù)器都是用linux服務(wù)器(redHat列赎、centos)
7.LVS主機(jī)配置的Master,備機(jī)配置的BACKUP
8.通過心跳檢查機(jī)制檢查主機(jī)宕機(jī)了镐确,然后切換到備機(jī)(RPC)
9.主機(jī)和備機(jī) 屬性Master和Backup 優(yōu)先級(jí)