-session
記錄某一個(gè)ip的用戶在某個(gè)網(wǎng)站上瀏覽的一段時(shí)間內(nèi)的信息
-web server
很大程度上可以說就是一個(gè)http server
作用是呈現(xiàn)html網(wǎng)頁給用戶,并且將用戶的request交給正確的app處理牌里,再將結(jié)果返回給用戶望伦。
-app server
處理request的應(yīng)用程序真正所在的地方倔韭。
-nginx
Created in 2002蚁署。非阻塞異步處理請求,可以處理的并發(fā)量非常大园蝠,并且占用資源相對較小电湘。
-apache
Initial release in 1995。同步阻塞處理請求筐带。非常穩(wěn)定今穿,功能齊全。
-load balancer
有不同含義:
1.單個(gè)運(yùn)算分給多個(gè)節(jié)點(diǎn)同時(shí)執(zhí)行伦籍,提高速度(clustering技術(shù))
2.將并發(fā)訪問平均的分配給多臺(tái)服務(wù)器
實(shí)現(xiàn):
早期通過DNS實(shí)現(xiàn)蓝晒。但是DNS不能區(qū)分服務(wù)器的差異腮出,也不能反映服務(wù)器的當(dāng)前運(yùn)行狀態(tài)。
(反向)代理服務(wù)器也可以實(shí)現(xiàn)負(fù)載均衡芝薇。
-proxy
對服務(wù)器來說proxy就是用戶端(request的來源)
作用:隱藏真實(shí)用戶胚嘲,提高安全性÷宥可以連接本來會(huì)被拒絕的服務(wù)器馋劈;改變連接路徑。如直接連接服務(wù)器的線路有問題時(shí)可以改變連接線路晾嘶;緩存網(wǎng)站內(nèi)容妓雾,加速響應(yīng)
-reverse proxy
對用戶來說reverse proxy就是網(wǎng)站的服務(wù)器
作用:隱藏真實(shí)服務(wù)器,作為防火墻使用垒迂。實(shí)現(xiàn)負(fù)載均衡械姻。緩存網(wǎng)頁
-三種主流的web服務(wù)實(shí)現(xiàn)方案REST、SOAP娇斑、XML-RPC
XML-RPC已慢慢的被SOAP所取代策添,現(xiàn)在很少采用了
SOAP在成熟度上優(yōu)于REST。SOAP安全性高于REST毫缆,因?yàn)镽EST更關(guān)注的是效率和性能問題
-RESTful(Representational State Transfer)
一種設(shè)計(jì)風(fēng)格唯竹,不是標(biāo)準(zhǔn)。REST指的是一組架構(gòu)約束條件和原則苦丁。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計(jì)就是RESTful浸颓。
“Web應(yīng)用程序最重要的REST原則是,客戶端和服務(wù)器之間的交互在請求之間是無狀態(tài)的旺拉。從客戶端到服務(wù)器的每個(gè)請求都必須包含理解請求所必需的信息产上。如果服務(wù)器在請求之間的任何時(shí)間點(diǎn)重啟,客戶端不會(huì)得到通知蛾狗〗粒”因此即使途中連接用戶的服務(wù)器改變了用戶也不會(huì)感覺到有什么影響。
REST依賴于簡單的URL并使用4種基本的HTTP操作(GET, POST, PUT and DELETE)來提供服務(wù)沉桌。
-SOAP
使用XML傳輸數(shù)據(jù)谢鹊,格式比較復(fù)雜。soap用來描述傳遞信息的格式
-IDC
Internet Data Center
數(shù)據(jù)中心留凭,也可以指一種服務(wù)佃扼。是網(wǎng)絡(luò)基礎(chǔ)資源的一部分
-RDB
優(yōu)點(diǎn):
二維表結(jié)構(gòu)容易理解,表與表之間的關(guān)系也貼近實(shí)際概念蔼夜。
對完整性有約束條件兼耀,可以降低數(shù)據(jù)重復(fù)的概率
可以長久保存數(shù)據(jù),并保持?jǐn)?shù)據(jù)之間正確的關(guān)系
瓶頸:
高并發(fā)讀寫(硬盤IO速度)
讀寫效率(表太大,關(guān)系復(fù)雜時(shí)查找會(huì)非沉鲈耍花時(shí)間)
表的結(jié)構(gòu)固定窍霞,系統(tǒng)升級需要新的結(jié)構(gòu)的表時(shí)修改會(huì)很麻煩。
-NoSQL
Not Only SQL
優(yōu)點(diǎn):
表單的結(jié)構(gòu)很靈活尽超,可以快速查詢數(shù)據(jù)并且數(shù)據(jù)遷移時(shí)很方便官撼。
限制:
大多數(shù)不能夠提供像SQL的where這種對于字段屬性值情況的查詢。
數(shù)據(jù)約束很少似谁,難以體現(xiàn)設(shè)計(jì)的完整性傲绣。只適合存儲(chǔ)一些較為簡單的數(shù)據(jù)。
不同類型的NoSQL:
鍵值(key-value)儲(chǔ)存數(shù)據(jù)庫:具有極高的并發(fā)讀寫性能
列儲(chǔ)存數(shù)據(jù)庫:表的一列存在一起巩踏。適合批量數(shù)據(jù)處理和即時(shí)查詢
文檔型數(shù)據(jù)庫:一個(gè)文檔作為一條數(shù)據(jù)秃诵,包含所有信息∪恚可以在海量的數(shù)據(jù)中快速的查詢數(shù)據(jù)
-MongoDB
特點(diǎn):
文檔型數(shù)據(jù)庫
數(shù)據(jù)被分組儲(chǔ)存在數(shù)據(jù)集(collection)中菠净,每個(gè)數(shù)據(jù)集中包涵了所有相關(guān)的數(shù)據(jù)。
不需要定義schema
可以使用sql對某個(gè)屬性查詢
-Memcached
作用:
緩存數(shù)據(jù)庫查詢結(jié)果彪杉,減少數(shù)據(jù)庫訪問次數(shù)毅往,以提高動(dòng)態(tài)Web等應(yīng)用的速度、提高可擴(kuò)展性
特點(diǎn):
采用客戶端實(shí)現(xiàn)分布式存儲(chǔ)
MemCached不支持?jǐn)?shù)據(jù)持久化
工作流程:
1.用戶請求memcache server獲得數(shù)據(jù)
2.如果memcache server沒有數(shù)據(jù)則memcache
server將請求轉(zhuǎn)給database
3.保持緩存中數(shù)據(jù)的新鮮性
應(yīng)用場景:
動(dòng)態(tài)系統(tǒng)中減輕數(shù)據(jù)庫負(fù)載派近,提升性能攀唯;做緩存,適合多讀少寫渴丸,大數(shù)據(jù)量的情況(如人人網(wǎng)大量查詢用戶信息侯嘀、好友信息、文章信息等)谱轨。
-Reids
特點(diǎn):
支持網(wǎng)絡(luò)戒幔、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫土童,并提供多種語言的API
3.0后可以支持服務(wù)器端構(gòu)建分布式存儲(chǔ)
支持?jǐn)?shù)據(jù)持久化和數(shù)據(jù)恢復(fù)诗茎,允許單點(diǎn)故障,但是同時(shí)性能也會(huì)有所降低
應(yīng)用場景:
適用于對讀寫效率要求都很高献汗,數(shù)據(jù)處理業(yè)務(wù)復(fù)雜和對安全性要求較高的系統(tǒng)(如新浪微博的計(jì)數(shù)和微博發(fā)布部分系統(tǒng)错沃,對數(shù)據(jù)安全性、讀寫要求都很高)雀瓢。