Gossip實(shí)現(xiàn)
一篇關(guān)于gossip描述的很好的論文舆瘪,NoSQL 數(shù)據(jù)庫(kù)中的分布式算法
Gossip protocol
目標(biāo)是向全世界傳播消息
分布式傳遞消息的靈感來(lái)源于
- 感染病傳播
- 人類八卦
- 社交網(wǎng)絡(luò)
Gossip的強(qiáng)度 - 可伸展性
一個(gè)節(jié)點(diǎn)不會(huì)等待消息被確認(rèn)咆爽,然后他也不會(huì)重新發(fā)送消息即使這個(gè)消息沒(méi)有接受到 - 容錯(cuò)性
有能力在網(wǎng)絡(luò)中進(jìn)行不規(guī)則和未知的鏈接设预。他們?cè)谶@些情況下工作得很好葫松,因?yàn)楫?dāng)我們要讓一個(gè)節(jié)點(diǎn)共享相同的信息幾次到不同的節(jié)點(diǎn)是,所以如果一個(gè)節(jié)點(diǎn)不能被接受玄捕,信息就會(huì)通過(guò)一個(gè)不同的節(jié)點(diǎn)被共享车胡,換一句話來(lái)說(shuō)就是信息可以有多種渠道從源頭流向目的地 - 魯棒性
沒(méi)有一個(gè)節(jié)點(diǎn)在網(wǎng)絡(luò)中又特殊的地位。所以失敗的節(jié)點(diǎn)不會(huì)阻止其他的節(jié)點(diǎn)的繼續(xù)發(fā)送信息十酣。
每一個(gè)節(jié)點(diǎn)可以隨意的加入或者離開(kāi)涩拙,而不會(huì)嚴(yán)重的干擾整體系統(tǒng)的服務(wù)。
并不是在所有的情況下都很魯棒耸采, - 收斂一致性
Gossip協(xié)議實(shí)現(xiàn)了以指數(shù)的方式散布信息兴泥,所以在一個(gè)新的時(shí)間發(fā)生之后會(huì)以指數(shù)級(jí)別的速度快速收斂到一個(gè)全局一直的狀態(tài),傳播新的信息到所有的節(jié)點(diǎn)的時(shí)間會(huì)受到系統(tǒng)大小的對(duì)數(shù)影響 - 極度的去中心化
gossip 提供了一個(gè)極度的去中心畫的信息發(fā)現(xiàn)機(jī)制虾宇,而且他的延遲是可以接受的如果信息不需要被馬上用到搓彻。
Gossip協(xié)議在概念上很簡(jiǎn)單而且很好去編碼。基本的思想就是:一個(gè)節(jié)點(diǎn)需要向其他的一些節(jié)點(diǎn)分享一些信息旭贬,然后周期性的隨機(jī)從一個(gè)節(jié)點(diǎn)集合中選擇一個(gè)節(jié)點(diǎn)怔接,然后交換信息。
fanout:在一個(gè)循環(huán)中需要gossip的節(jié)點(diǎn)數(shù)稀轨,當(dāng)一個(gè)節(jié)點(diǎn)需要傳播一個(gè)信息扼脐,它會(huì)選著t節(jié)點(diǎn),并且把消息發(fā)送給他們靶端。
一點(diǎn)歷史谎势,復(fù)制數(shù)據(jù)庫(kù)的流行算法:
復(fù)制數(shù)據(jù)庫(kù)維護(hù)的流行算法凛膏。
有些問(wèn)題我們需要解決的
- 我們嘗試構(gòu)建一個(gè)目錄杨名,一個(gè)可查詢的數(shù)據(jù)庫(kù)
- 網(wǎng)絡(luò)是不可以依靠的
- 沒(méi)個(gè)更新都會(huì)被注入一個(gè)站點(diǎn),然后傳播到所有的站點(diǎn)或者沒(méi)更新給取代
- 數(shù)據(jù)庫(kù)在數(shù)以千計(jì)的幾點(diǎn)上復(fù)制
- 在沒(méi)有更新之后猖毫,副本變得一致
節(jié)點(diǎn)的狀態(tài):
- 易感染的
一個(gè)有更新的節(jié)點(diǎn)愿意共享 - 易受到感染的
一個(gè)節(jié)點(diǎn)還沒(méi)有被感染 - 移除
一個(gè)節(jié)點(diǎn)已經(jīng)收到了更新台谍,但是不愿意去共享它
移除是最棘手的操作,決定哪一個(gè)節(jié)點(diǎn)應(yīng)該被移除不是一件容易得事情吁断。理想情況下趁蕊,當(dāng)所有的節(jié)點(diǎn)都連接到了更新之后,節(jié)點(diǎn)就應(yīng)該停止共享仔役。但是這就意味著節(jié)點(diǎn)必須了解其他節(jié)點(diǎn)的狀態(tài)掷伙。
之后我們會(huì)看到不同的算法,都是用來(lái)標(biāo)記一個(gè)節(jié)點(diǎn)被移除(Removed)的方法
分析算法
分析了三種傳播更新的方法
直接郵寄法: 他們一開(kāi)始的時(shí)候又兵,沒(méi)一個(gè)更新都會(huì)從他們的入口地點(diǎn)發(fā)送到所有的其他的地點(diǎn)任柜,但是會(huì)有一些問(wèn)題:1.發(fā)送節(jié)點(diǎn)的瓶頸就是n(O).2.每個(gè)節(jié)點(diǎn)都必須被傳播到所有的節(jié)點(diǎn),所以每個(gè)節(jié)點(diǎn)必須知道系統(tǒng)中其他所有的節(jié)點(diǎn)沛厨。3.當(dāng)節(jié)點(diǎn)長(zhǎng)時(shí)間沒(méi)有響應(yīng)或者隊(duì)列溢出的時(shí)候消息可能會(huì)被丟棄
反熵法:每個(gè)節(jié)點(diǎn)都定期的選擇另外一個(gè)站點(diǎn)宙地,并通過(guò)交換收哭的內(nèi)容來(lái)解決兩個(gè)節(jié)點(diǎn)之間的差異。他與直接郵寄法或者謠言散布法一起使用逆皮,并且運(yùn)行以糾正為交付的更新宅粥,這是一個(gè)鐘備份系統(tǒng)(backup system)。想象一下电谣,那些直接郵寄法沒(méi)有達(dá)到的節(jié)點(diǎn)秽梅,反熵應(yīng)該修正。
謠言散布發(fā): 一開(kāi)始site是什么都不知道的剿牺。當(dāng)一個(gè)site接受到更新的時(shí)候风纠,他變成了“hot rumor”,當(dāng)一個(gè)site上有一個(gè)“hot rumor”。他會(huì)周期性隨機(jī)的選擇另外一個(gè)site牢贸,并確保其他的站點(diǎn)看到了更新竹观。當(dāng)一個(gè)站點(diǎn)視圖一個(gè)已經(jīng)被其他很多站點(diǎn)都看過(guò)的“hot rumor”,這個(gè)站點(diǎn)就不再把這個(gè)rumor 視為 hot的,然后再不再傳播這個(gè)更新并且保持更新臭增。
最后兩種是流行的八卦算法懂酱。讓我們看看這些算法更加一般的描述。
Gossip的種類
- 反熵(SI模型):簡(jiǎn)單的流行病誊抛,一個(gè)節(jié)點(diǎn)總是為易感染的和感染的兩種狀態(tài)
- 謠言散布模型(SIR 模型):復(fù)雜一點(diǎn)的流行病列牺,一個(gè)節(jié)點(diǎn)不僅有反熵的兩種狀態(tài),還多了一個(gè)種移除的狀態(tài)拗窃。
反熵這個(gè)名字的由來(lái)是因?yàn)檫@個(gè)算法被用來(lái)減少副本的熵瞎领,換句話來(lái)說(shuō)就是增加了兩個(gè)節(jié)點(diǎn)的相似度。
在反熵(SI 模型)中随夸,一個(gè)具有感染信息的節(jié)點(diǎn)試圖在每一輪循環(huán)中分享它九默。一個(gè)節(jié)點(diǎn)不僅共享了更新,而且還共享了整個(gè)數(shù)據(jù)庫(kù)宾毒,有一些技術(shù)像校驗(yàn)和驼修,(最新更新列表),merkle樹(shù)等诈铛,容許節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前得知兩個(gè)節(jié)點(diǎn)是否存在差異乙各,從而保證了最終完美的傳播。
而且沒(méi)有終止幢竹,所以它發(fā)送了無(wú)界的消息數(shù)量耳峦。
謠言傳播的周期比反熵周期更加的頻繁,因?yàn)樗麄冃枰由俚馁Y源焕毫,因?yàn)楣?jié)點(diǎn)只發(fā)送一個(gè)行的更新或者一個(gè)感染更新的列表蹲坷。謠言散布算法的傳播速度很快,而且網(wǎng)絡(luò)流量很低咬荷。
在某個(gè)點(diǎn)上的謠言被標(biāo)記為 移除 冠句,不再共享,因此幸乒,消息的數(shù)量是有限的懦底,并且更新不會(huì)到達(dá)所有站點(diǎn)的可能,盡管這個(gè)概率可以被變?yōu)槿我庑『痹覀兩院髸?huì)看到聚唐。首先,讓我們了解一下如何決定一個(gè)節(jié)點(diǎn)應(yīng)該是被刪除的狀態(tài)腔召。
移除狀態(tài)/失興(失去興趣)
(基于Mark Jelasity的描述)
- Removal算法用來(lái)決定一個(gè)節(jié)點(diǎn)是否應(yīng)該被置為移除的狀態(tài)
- Coin/random:每次不成功的嘗試之后杆查,以1/k的概率被移除。
常識(shí)解釋
ftp:正好我們計(jì)網(wǎng)學(xué)到了這個(gè)協(xié)議臀蛛,ftp(file transport protocol)文件傳輸協(xié)議亲桦,顧名思義崖蜜。ftp和http有很多的共同點(diǎn),比方說(shuō)他們都運(yùn)行在TCP上客峭。
用戶通過(guò)一個(gè)ftp用戶代理與ftp交互豫领。該用戶首先提供遠(yuǎn)程的主機(jī)的主機(jī)名,使本地的ftp客戶端進(jìn)程建立一個(gè)到遠(yuǎn)程足跡ftp服務(wù)器進(jìn)程的tcp連接舔琅。該用戶接著提供用戶表示和口令等恐,作為ftp命令的一部分在該tcp連接上傳輸。http: 超文本傳輸協(xié)議是一種應(yīng)用協(xié)議用于分布式备蚓,寫作和草媒體信息系統(tǒng)课蔬,是一種請(qǐng)求-響應(yīng) 協(xié)議。
https:HTTP的改進(jìn)郊尝,用于通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行安全的通信二跋。在HTTPS,改通信協(xié)議被加密的安全套接層(TLS)虚循,或他的前身(SSL)加密同欠。
-
HTTP 2.0: HTTP / 2 是HTTP 1.1 以來(lái)的第一個(gè)新版本样傍。旨在解決http 1.0和1.1存在的問(wèn)題
- 1横缔,但鏈接多資源的方式,減少服務(wù)端的鏈接壓力衫哥,內(nèi)存占用更加小茎刚,鏈接的吞吐量更加大
- 2,不支持首部壓縮
http2.0的優(yōu)點(diǎn): - 1撤逢、多路復(fù)用允許同時(shí)通過(guò)單一的HTTP/2 鏈接發(fā)起多從的請(qǐng)求-響應(yīng)消息膛锭,不用依賴多個(gè)TCP鏈接。 HTTP/2 吧 HTTP 協(xié)議通信基本單位縮小為一個(gè)一個(gè)的幀蚊荣,這些幀對(duì)應(yīng)著邏輯劉中的信息初狰。并行的在同一個(gè)TCP 鏈接上雙向交換信息。從而使得擁塞狀態(tài)得以改善互例。
- 2奢入、首部壓縮減少了數(shù)據(jù)的大小
- 3、HTTP/2 中媳叨,服務(wù)器可以對(duì)客戶端的一個(gè)請(qǐng)求發(fā)送多個(gè)響應(yīng)
PHP 是最好的語(yǔ)言:這個(gè)梗的來(lái)源已經(jīng)無(wú)法考證了腥光。但我不知道為何自己對(duì)PHP的印象不是很好,有一個(gè)原因就是因?yàn)槲覀儗W(xué)校但凡做項(xiàng)目鐵定用的是PHP糊秆,而且學(xué)校的技術(shù)又特別的落后武福,所以技術(shù)落后就和PHP在我心中就綁定在一起了(我并不是黑它)。然后我在Quora上找了一下答案:這其實(shí)是一個(gè)強(qiáng)加的一個(gè)笑話痘番,PHP并不是一門最好的語(yǔ)言捉片,這句話使用來(lái)諷刺那些只懂點(diǎn)PHP皮毛而不深入下去的PHP開(kāi)發(fā)者平痰。PHP還是一門完美秀發(fā)編程語(yǔ)言(prefect hair programming),所以是想保住一頭秀發(fā)的程序員的不二編程語(yǔ)言選擇伍纫。
-
gzip壓縮
- 把文件壓縮為.gz 格式觉增,或者解壓
-
nginx/cgi/uWSGI/php-fpm/fastcgi
- 俗語(yǔ)解釋
- nginx: 一個(gè)性能很高的web服務(wù)器
- uWSGI:一個(gè)給python進(jìn)程的web服務(wù)器.WSGI是一種Web服務(wù)器網(wǎng)關(guān)的接口。它是一種Web服務(wù)器與web應(yīng)用通信的一種規(guī)范
- cgi:cgi是網(wǎng)頁(yè)表單和你寫程序之間通信的一種協(xié)議翻斟∮饨福可以用任何語(yǔ)言寫一個(gè)cgi腳本,這些語(yǔ)言智能接受輸入輸出的信息访惜,讀取環(huán)境變量嘹履。所以,幾乎所有編程語(yǔ)言都能寫一個(gè)CGI腳本债热。
- php-fpm:全稱是php fastcgi process manager即為php fastcgi進(jìn)程管理器砾嫉,相比f(wàn)astcgi靜態(tài)的喚起 cgi進(jìn)程和銷毀以達(dá)到動(dòng)態(tài)的調(diào)整cgi的數(shù)量,這樣可以有效的使用內(nèi)存窒篱,其他優(yōu)點(diǎn):fpm還可以平滑的重載php配置焕刮;不用再配置cgi短褲;有更好的狀態(tài)輸出墙杯,和slowlog日志配并,502的時(shí)候能給出更多的錯(cuò)誤細(xì)節(jié)
- 俗語(yǔ)解釋
-
高階函數(shù)/函數(shù)克里化
- 高階函數(shù)就是,從一個(gè)函數(shù)映射到另外一個(gè)函數(shù)高镐。也就是一個(gè)函數(shù)返回另外一個(gè)函數(shù)
- 函數(shù)克里化是指的講原來(lái)接受多個(gè)參數(shù)的函數(shù)編程行的只接受一個(gè)函數(shù)的過(guò)程溉旋,類似閉包,比方說(shuō)python 的 partial庫(kù)
函數(shù)式編程: 一種編程范式嫉髓,屬于一種結(jié)構(gòu)化編程观腊,把運(yùn)算過(guò)程寫出一系列的嵌套函數(shù)
-
bcd/mit licenses
MIT License:相對(duì)寬松的授權(quán)條約
BCD License: 比GPL許可證和MPL許可證寬松,但是比MIT嚴(yán)格
MIT License:MIT許可是一個(gè)寬容的自由軟件許可證起源于美國(guó)麻省理工學(xué)院(MIT)算行。它只對(duì)重用限制非常有限梧油,MIT許可證允許在私有軟件中重復(fù)使用,前提是許可軟件的所有副本均包含MIT許可條款和版權(quán)聲明的副本州邢。
BCD License:對(duì)使用和重新分配涵蓋的軟件施加最小的限制儡陨,BSD由于允許使用者修改和重新發(fā)布代碼,也允許使用或在BSD代碼上開(kāi)發(fā)商業(yè)軟件發(fā)布和銷售偷霉,因此是對(duì)商業(yè)集成很友好的協(xié)議迄委。但前提是
1、如果再發(fā)布的產(chǎn)品中包含源代碼类少,則在源代碼中必須帶有原來(lái)代碼中的BSD協(xié)議叙身。
2、如果再發(fā)布的只是二進(jìn)制類庫(kù)/軟件硫狞,則需要在類庫(kù)/軟件的文檔和版權(quán)聲明中包含原來(lái)代碼中的BSD協(xié)議信轿。
3晃痴、不可以用開(kāi)源代碼的作者/機(jī)構(gòu)名字和原來(lái)產(chǎn)品的名字做市場(chǎng)推廣。
cocoa
蘋果的一套用來(lái)寫Mac OS X應(yīng)用程序的面向?qū)ο蟮目蚣?br> cocoa是蘋果公司為Mac OS X所創(chuàng)建的原生面向?qū)ο蟮腁PI财忽,用于蘋果設(shè)備的應(yīng)用程序
主要開(kāi)發(fā)工具:Xcode倘核,Interface Buildermvc模式
Model報(bào)數(shù)程序的核心(數(shù)據(jù)庫(kù)), View顯示數(shù)據(jù) 和 Controller用于處理數(shù)據(jù)-
裝飾者/裝飾器模式
包裝即彪,給一個(gè)對(duì)象在外部添加一些功能紧唱,動(dòng)態(tài)的位對(duì)象添加功能,即從一個(gè)對(duì)象外部給對(duì)象添加功能隶校。他并不必改變?cè)愇募┮妫瑒?dòng)態(tài)的擴(kuò)展一個(gè)對(duì)象的功能,主要是通過(guò)創(chuàng)建一個(gè)裝飾器來(lái)包裝對(duì)象深胳。- eg: python的裝飾器
-
socket/websocket
- socket 網(wǎng)絡(luò)數(shù)據(jù)交換的接口绰疤。socket本質(zhì)就是編程接口API,對(duì)TCP/IP的封裝舞终,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開(kāi)發(fā)所需要的結(jié)構(gòu)轻庆,這就是Socket編程接口。
- websocket
websocket協(xié)議
再簡(jiǎn)單點(diǎn)來(lái)說(shuō)敛劝,它就好像將Ajax和Comet技術(shù)的特點(diǎn)結(jié)合到了一起余爆,只不過(guò)性能要高并且使用起來(lái)要方便的多(當(dāng)然是之指在客戶端方面。攘蔽。)
RFC草案中已經(jīng)說(shuō)明龙屉,WebSocket的目的就是為了在基礎(chǔ)上保證傳輸?shù)臄?shù)據(jù)量最少呐粘。
這個(gè)協(xié)議是基于Frame而非Stream的满俗,也就是說(shuō),數(shù)據(jù)的傳輸不是像傳統(tǒng)的流式讀寫一樣按字節(jié)發(fā)送作岖,而是采用一幀一幀的Frame唆垃,并且每個(gè)Frame都定義了嚴(yán)格的數(shù)據(jù)結(jié)構(gòu),因此所有的信息就在這個(gè)Frame載體中痘儡。(后面會(huì)詳細(xì)介紹這個(gè)Frame)
特點(diǎn)- 基于TCP協(xié)議
- 具有命名空間
- 可以和HTTP Server共享同一port
- ws的一些首部
Sec-WebSocket-Key : 客戶端給服務(wù)器的
Sec-WebSocket-Accept :服務(wù)器給客戶端的
客戶端發(fā)送請(qǐng)求到服務(wù)端辕万,客戶端的請(qǐng)求頭中包含有
upgrade : websocket
set-websocket-key : xxxxx==
服務(wù)端收到這個(gè)來(lái)自客戶端的請(qǐng)求之后
對(duì)其進(jìn)行sha1哈希加密,然后再進(jìn)行base64編碼沉删,生成resKey
然后服務(wù)端開(kāi)始?jí)蛑鄳?yīng)頭渐尿,相應(yīng)頭中的具體內(nèi)容會(huì)有
'HTTP/1.1 101 Switching Protocols',
'Upgrade: websocket’,
'Connection: Upgrade',
'Sec-WebSocket-Accept: ' + resKey
resKey為服務(wù)端生成的resKey
ws有PingPong機(jī)制,
設(shè)置
pingTimeout:多少毫秒沒(méi)有收到pong就自動(dòng)把連接斷開(kāi)
pingInterval: 多少毫秒后發(fā)送一個(gè)發(fā)送一個(gè)新的ping包
-
opengl/opencv
- OpenGL是一個(gè)3D圖像庫(kù)(2D也能寫)矾瑰,著名的建模軟件C4D就有這個(gè)OpenGL編程模塊砖茸,是指定了一個(gè)跨編程語(yǔ)言,跨平臺(tái)的編程的接口規(guī)格的專業(yè)圖像程序接口殴穴。他用于三維二維圖像凉夯,是一個(gè)功能強(qiáng)大货葬,調(diào)用方便的底層圖像庫(kù)。
- OpenCV:是一系列C函數(shù)少量的C++類構(gòu)成劲够,同時(shí)提供了Python震桶、Ruby、MATLAB的語(yǔ)言的接口征绎,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的汗多通用的算法蹲姐,還設(shè)計(jì)一些機(jī)器學(xué)習(xí)的算法
- opencv是圖像到數(shù)據(jù),而opengl是數(shù)據(jù)到圖像
-
多態(tài)
- 只不同的類的帝鄉(xiāng)對(duì)同一個(gè)消息做出的響應(yīng)人柿。即同一個(gè)消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的方式淤堵。
-
像素/尺寸/px/分辨率/ppi
- 像素是指在有一個(gè)數(shù)字序列標(biāo)書圖像的最小單位。每一個(gè)像素點(diǎn)一般為3個(gè)顏色的小燈組成顷扩,在一般的顯示器上一個(gè)小燈有256中亮度拐邪,但是在監(jiān)視器上這個(gè)數(shù)會(huì)大幾倍
- 尺寸屏幕對(duì)角線的長(zhǎng)度,一般以寸做單位
- 分辨率: 入1080 * 1920我的大屏就是
- ppi:屏幕像素密度(PPI)就是沒(méi)英寸屏幕所擁有的像素?cái)?shù)隘截。kindle就是用ppi做單位扎阶。ppi可以通過(guò)分辨率和屏幕的尺寸換算出來(lái)
-
如何計(jì)算sin(1),e^x, log(x), sqrt(x)快速婶芭,精準(zhǔn)
- 不知道233333
-
全加器/半加器/超前進(jìn)位加法器
這個(gè)在大一的計(jì)算思維課程里講過(guò)- 半加器: 加數(shù)和被加數(shù)為輸入东臀,和數(shù)與進(jìn)位為輸出的裝置為半加器。
- 全加器: 若加數(shù)犀农、被加數(shù)與低位的進(jìn)位數(shù)為輸入惰赋,而加數(shù)與進(jìn)位的輸出為全加器。
- 超前進(jìn)位加法器:是多普通的全加器進(jìn)行改良而設(shè)計(jì)成的并行加法器呵哨,主要是針對(duì)普通全加器串聯(lián)時(shí)互相進(jìn)位產(chǎn)生延遲進(jìn)行了改良
-
編譯原理/代碼運(yùn)行原理
- 編譯:把高級(jí)計(jì)算機(jī)語(yǔ)言編譯成計(jì)算機(jī)能識(shí)別的機(jī)器語(yǔ)言
- 編譯 + 執(zhí)行 代碼就跑起來(lái)了
-
mysql/mongodb/sql/NoSql
- 通俗解釋: 各種數(shù)據(jù)庫(kù)
- 專業(yè)解釋: 組織赁濒、存儲(chǔ)、管理數(shù)據(jù)的倉(cāng)庫(kù)
-
cookies/session
- cookies: 網(wǎng)站為了人認(rèn)證用戶存儲(chǔ)在本地的數(shù)據(jù)庫(kù)孟害,存儲(chǔ)在客戶端拒炎,不是很安全,別人可以分析存儲(chǔ)在本地的cookie進(jìn)行cookie欺騙
- session:儲(chǔ)存客戶的信息在服務(wù)器上挨务,但是當(dāng)訪問(wèn)增多時(shí)候击你,會(huì)占用你的服務(wù)器性能,所以有一個(gè)更加好的解決方法谎柄,json web token實(shí)現(xiàn)單點(diǎn)登錄
-
git/svn/版本控制
- 這個(gè)就不說(shuō)了丁侄,天天在用的,版本控制管理工具朝巫,雖然我的使用還停留在小學(xué)生階段
-
ssh
- 建立在應(yīng)用層的基礎(chǔ)上的安全協(xié)議鸿摇,專門為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)路服務(wù)提供安全性的協(xié)議,所有的傳輸?shù)臄?shù)據(jù)都會(huì)被加密捍歪。telnet與ssh類似户辱,ssh就是多了一個(gè)ssl層
1鸵钝、基于口令的認(rèn)證:每次登錄到遠(yuǎn)程主機(jī)都要輸入密碼
2、基于密鑰的安全認(rèn)證:你不虛創(chuàng)建一對(duì)密鑰庐镐,公鑰放在服務(wù)器上恩商,這樣其他的服務(wù)器就無(wú)法冒充真正的服務(wù)器,但是登錄時(shí)間較慢必逆。
- 建立在應(yīng)用層的基礎(chǔ)上的安全協(xié)議鸿摇,專門為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)路服務(wù)提供安全性的協(xié)議,所有的傳輸?shù)臄?shù)據(jù)都會(huì)被加密捍歪。telnet與ssh類似户辱,ssh就是多了一個(gè)ssl層
-
ORM
- 關(guān)系型數(shù)據(jù)庫(kù)和業(yè)務(wù)實(shí)體對(duì)象之間作為一種映射怠堪,具體操作值需要簡(jiǎn)單的屬性和方法。反正就是不要寫sql你就可以愉快的操作數(shù)據(jù)庫(kù)
- 但是性能很差名眉,而且靈活性不夠粟矿。