运维杂记-02
###################################################
當(dāng)我們系統(tǒng)架構(gòu)出現(xiàn)瓶頸的時(shí)候一般擴(kuò)展方法分為:
縱向擴(kuò)展也可以叫垂直擴(kuò)展,比如擴(kuò)充服務(wù)器的cpu 1顆到2顆 內(nèi)存8G到16G 磁盤容量擴(kuò)容...
橫向擴(kuò)展也可以叫水平擴(kuò)展,比如web服務(wù)器從1臺(tái),增加到2臺(tái)...
###################################################負(fù)載均衡實(shí)現(xiàn)方法 ?之 http的header頭 ? ?DNS輪詢
http header頭里面有l(wèi)ocation域 可以重定向http請求,可以在程序端操作 比如用php來實(shí)現(xiàn),具體方法網(wǎng)上查查。場景 為下載業(yè)務(wù)提供http代理 下載的時(shí)候判斷客戶端ip然后再重定向到后端下載web服務(wù)器,#還有就是CDN的邊緣節(jié)點(diǎn),有時(shí)候獲取的可能locadns的ip?
騰訊cdn白皮書: https://mccdn.qcloud.com/static/pdf/5eef0923c4330481a24245b6542563d8/docfile.pdf作為一名技術(shù)人員一定要用合適的技術(shù)解決問題
趙班長提供的案例:cdn數(shù)據(jù)用rsync同步過去,可以認(rèn)為是一個(gè)偽源站,這樣就避免了cdn出問題的是,全部回源帶寬堵死或服務(wù)器壓力太大等問題
用dns輪詢做負(fù)載的場景還是有的 1.DNS輪詢ip本身就是高可用 2.某些時(shí)候dns輪詢可以解決多機(jī)房問題
我們再做負(fù)載均衡-健康檢查 重試次數(shù)和頻率 一般都是根據(jù)實(shí)際情況配置 有時(shí)候是經(jīng)驗(yàn)值
在nginx用負(fù)載均衡器的時(shí)候 當(dāng)一臺(tái)web服務(wù)器被踢出集群---如果恢復(fù)還會(huì)自動(dòng)加入 nginx上面有個(gè)等待時(shí)間繼續(xù)檢查
負(fù)載均衡算法:輪詢 加權(quán)輪詢 ,最小連接數(shù),url(hash)每次請求可能不一樣 如果后端服務(wù)器是緩存服務(wù)器, url(hash)在內(nèi)存有url-hash表 -馬蓉出軌了 被命中的緩存可能會(huì)蹦掉,開源的沒有解決方案(nginx和haproxy),如果想自動(dòng)解決的只能二次開發(fā),正常情況用uslhash,負(fù)載高的時(shí)候用輪詢。 網(wǎng)關(guān)負(fù)載均衡,鏈接負(fù)載均衡 一般都是用硬件去解決實(shí)現(xiàn) #################################################負(fù)載均衡實(shí)現(xiàn)方法之 nginx ?haproxy lvs lvs nat模式 lb負(fù)載均衡器要設(shè)置為后端服務(wù)器的網(wǎng)關(guān) 進(jìn)行了雙向的數(shù)據(jù)包的改寫,都是內(nèi)核基本的改寫 可以忽略,實(shí)際是和dr模式效率差不多,但是瓶頸主要在帶寬,一般內(nèi)網(wǎng)千兆的DR模式
下載站 肯定用dr模式,LB和rserver必須在同一網(wǎng)段,交換機(jī)解決沖突域,泛洪,dr 也可以說是二層負(fù)載四層負(fù)載均衡和七層負(fù)載均衡,七層是2個(gè)獨(dú)立的tcp連接,只是一個(gè)代理,后端服務(wù)器返回給代理,代理返回給用戶
?
haproxy支持4層和7層 雙臂路由,單臂路由 服務(wù)器直接插在負(fù)載均衡端口上 dr模式出現(xiàn)的瓶頸一般是前面的防火墻,因?yàn)榉阑饓τ凶畲筮B接數(shù)限制,可以把防火墻撤銷了,可以直接nginx對外,只開80端口。 單一技術(shù)棧:反向代理nginx 緩存也是nginx web服務(wù)器還是nginx 好處:架構(gòu)的單一 ? ?1.降到成本 2.減少運(yùn)維對象 3.管理方便 4.減少故障點(diǎn) 架構(gòu)需要考慮到很多東西: 業(yè)務(wù)模型 網(wǎng)絡(luò)環(huán)境等等 架構(gòu)沒有固定好了,只有合適的 ################web集群中Session處理方案Session id 一般會(huì)存在用戶的cookie中
大公司可能會(huì)有自己的session框架,tomcat在session存儲(chǔ)很大的時(shí)候會(huì)有問題?
生產(chǎn)環(huán)境基本都用redis,memcache有單點(diǎn)故障 /解決問題不要增加架構(gòu)的復(fù)雜度和故障點(diǎn),技術(shù)不是唯一,趙班長在這里引申出了IT管理的ppt 有時(shí)候運(yùn)維坐姿可能導(dǎo)致一個(gè)故障,比如沒有做好,不小心碰到了回車鍵,或椅子壞了等等導(dǎo)致意外的鍵盤錯(cuò)誤輸入,引發(fā)的血案(哈 很有可能,我遇到過開發(fā)人員執(zhí)行rm -rf 都時(shí)候手一抖敲到回車了 還好是測試機(jī)) ORM?英語:(Object Relational Mapping,簡稱ORM,或O/RM,或O/R mapping),是一種程序技術(shù),用于實(shí)現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換 安全問題 性能攻擊 研究哪個(gè)請求訪問數(shù)據(jù)庫,而且可能時(shí)間長的 多并發(fā)請求 SOA dubbo 阿里有官方支持 熟悉框架,知道運(yùn)維模式, 京東在去dubbo 常用的搜索可以靜態(tài)化 cookies記錄 在沒有登錄的時(shí)候,購物車放在一下臨時(shí)的地方,登錄的時(shí)候可能會(huì)在分布式緩存中或數(shù)據(jù)庫 電商網(wǎng)站 系統(tǒng)很復(fù)雜,服務(wù)架構(gòu)設(shè)計(jì),搜索服務(wù):前端商品搜索 用戶搜索 秒殺:1.拉新 找新客戶 ?2.粉絲得到優(yōu)惠 流量變現(xiàn),增加用戶的粘性 打分平臺(tái) 進(jìn)入 異常平臺(tái) 然后人工審核(比如購買幾萬的商品,需要客服確認(rèn)) 推薦系統(tǒng): 頁面前端 用js把用戶的行為記錄下來,然后放在hoodop里面,然后再推薦 1.讓客戶買更多的商品 2.推薦一下 存貨 是一個(gè)營銷的收到,技術(shù)實(shí)現(xiàn)有很多 視頻點(diǎn)播? 拆單系統(tǒng),京東是自動(dòng)拆單 人的資源是最貴的,能不用人就不用 如果官網(wǎng)出現(xiàn)400電話,說明這個(gè)網(wǎng)站流量說明不大,如果大400會(huì)被打爆的。 溝通的不對等,在工作中是最大的問題。很重要 有時(shí)候不漲工作和技術(shù)沒有關(guān)系,你可能覺得自己厲害,但是領(lǐng)導(dǎo)認(rèn)為你不厲害 做架構(gòu)盡量少的訪問數(shù)據(jù)庫, 數(shù)學(xué)家 哲學(xué)家 計(jì)算機(jī)專家 有的大公司 一個(gè)工作必須2個(gè)人,輪詢 +備份 哲學(xué)觀 倉儲(chǔ)是多級的 前店后倉,和緩存機(jī)制是相同的 #######共有云 運(yùn)維產(chǎn)品化,內(nèi)部服務(wù) 商品化 視頻直播很多 公有云都提供了 門檻很低了,沒有計(jì)算壁壘 學(xué)的所有的開源軟件,公有云上都有 如果一個(gè)新技術(shù),不懂就去公有上看看有沒有相關(guān)的產(chǎn)品介紹 上云就很難下來了,消息隊(duì)列等可能不兼容 等等其它問題 阿里云只支持主mysql 不支持slave #################### 來自趙班長的總結(jié) 當(dāng)用戶使用代理訪問web服務(wù)器時(shí)候,web服務(wù)器只能獲取到用戶的代理ip,而無法獲取的用戶的真實(shí)ip 公司可以建設(shè)一個(gè) 評分系統(tǒng),嚴(yán)格的防止作弊,使用使用代理的都應(yīng)該減分,進(jìn)入異常隊(duì)列,繼續(xù)進(jìn)行評分或者人工進(jìn)行審核 ####################haproxy 生產(chǎn)環(huán)境除了代理其它后端web都不用80端口,因?yàn)?0端口需要root啟動(dòng) 運(yùn)維就是有問題解決問題,需要有這個(gè)能力hatop是一個(gè)haproxy的開源工具
haproxy 在線維護(hù) socat 通過unix socket 上線下線等 后端服務(wù)器 ? ? ? ? ?(#詳細(xì)配置見群里提供的haproxy配置文檔) echo?"help"|?socat?stdio?/var/lib/haproxy.sock ?查看幫助 keepalive最早是給lvs做高可用的,所有給haproxy可以不加lvs支持功能 (#詳細(xì)知識(shí)點(diǎn)見群里的keepalive權(quán)威指南) postfix 是keepalive 郵件服務(wù) echo?1?>?/proc/sys/net/ipv4/ip_nonlocal_bind?開啟允許綁定非本機(jī)的IP keepalive可以管理多個(gè)vip master可以設(shè)置恢復(fù)搶占或不搶占,默認(rèn)是搶占的 ##########到一個(gè)新公司第一件是考慮數(shù)據(jù)容災(zāi)方案,如果沒有相關(guān)方案,數(shù)據(jù)出問題那就是大事了 容災(zāi)方案常規(guī)原則: 1.核心業(yè)務(wù),非核心業(yè)務(wù) 2.從重要數(shù)據(jù)到非重要數(shù)據(jù) 3.從下往上(先數(shù)據(jù)庫) 4.災(zāi)備演練 5.徘徊在冷備和雙活之間,在災(zāi)備機(jī)房所有的服務(wù)都是正常的,可以先切1%的流量,數(shù)據(jù)回寫看是否正常 專線:內(nèi)部專線(比如世紀(jì)互聯(lián)內(nèi)部的已經(jīng)實(shí)現(xiàn)好的。),vpn(基于互聯(lián)網(wǎng)不穩(wěn)定),運(yùn)營商專線(mstp按照公里數(shù)收費(fèi)) 問題: 1.流量控制,比如master突然寫大量的sql很有可能把專線跑慢了 2.vpn網(wǎng)絡(luò)延遲大,redis復(fù)制永遠(yuǎn)復(fù)制不過去,redis有個(gè)backxxx(1.加帶寬 2.把內(nèi)存調(diào)小) 3.服務(wù)如果是用的ip,災(zāi)備要更改ip比較復(fù)雜 可以備在云上,支持動(dòng)態(tài)擴(kuò)展 各大公有云一般都有拉專線服務(wù),一般建議可以遠(yuǎn)程寫 備份數(shù)據(jù)的刪除: 記錄在excel表里 找開發(fā)確認(rèn),然后再刪除 備份方案寫全了找各部門確認(rèn),然后還要定期巡檢 運(yùn)維被黑鍋,就是自己做的不好,背鍋原因一般是找不到問題的原因 給領(lǐng)導(dǎo)一個(gè)可控的方案 單點(diǎn)故障:架構(gòu) 數(shù)據(jù)備份 人 思考: haproxy 主down 所有的連接都沒有 有沒有有這個(gè)機(jī)制能保持不斷開這些連接 ######### 信息系統(tǒng)災(zāi)難恢復(fù)規(guī)范GBT20988-2007 和 跟趙班長學(xué)高性能Web架構(gòu)-集群篇.pdf?轉(zhuǎn)載于:https://www.cnblogs.com/xiewenming/p/7471353.html
總結(jié)
- 上一篇: B计划 第四周(开学第一周)
- 下一篇: httpclient 学习