前沿?zé)狳c(diǎn):讀發(fā)布!設(shè)計(jì)與部署穩(wěn)定的分布式系統(tǒng)(第2版)筆記16_握手和考驗(yàn)機(jī)

發(fā)布時(shí)間:2023-06-30 07:12:08  |  來源:博客園  


(資料圖)

1.握手

1.1.發(fā)送方和接收方之間的信號傳遞過程

1.2.模擬調(diào)制解調(diào)器使用一種握手形式,協(xié)商兩個(gè)設(shè)備都能接受的速度和信號編碼

1.3.TCP使用三次握手建立套接字連接

1.4.TCP握手還允許接收方發(fā)信號告訴發(fā)送方:在接收方準(zhǔn)備好之前不要發(fā)送數(shù)據(jù)

1.5.EIA-232C(以前稱為RS-232)的串行協(xié)議,是從接收方那里知道它何時(shí)能準(zhǔn)備好接收數(shù)據(jù)

1.7.握手是一種未被充分利用的技術(shù),在應(yīng)用層協(xié)議中擁有巨大的優(yōu)勢

1.7.1.HTTP并不擅長握手

2.創(chuàng)建基于合作的需求控制機(jī)制

2.1.客戶端和服務(wù)器之間的握手,允許將需求的流量調(diào)節(jié)到可服務(wù)的級別

2.2.在構(gòu)建客戶端和服務(wù)器時(shí),兩者都必須實(shí)現(xiàn)握手

2.3.讓服務(wù)器通過限制自己的工作量保護(hù)自己

2.3.1.服務(wù)器應(yīng)該有辦法拒絕執(zhí)行發(fā)來的工作,而不是成為滿足任何要求的“受氣包”

2.3.2.基于HTTP的服務(wù)器需要依賴負(fù)載均衡器與Web服務(wù)器或應(yīng)用程序服務(wù)器之間的合作關(guān)系實(shí)現(xiàn)“握手”

3.健康狀況檢查

3.1.在集群或負(fù)載均衡服務(wù)中,使用健康狀況檢查實(shí)現(xiàn)實(shí)例與負(fù)載均衡器握手

3.2.當(dāng)失衡的系統(tǒng)容量導(dǎo)致響應(yīng)緩慢時(shí),“握手”可能是最有價(jià)值的

3.3.當(dāng)調(diào)用缺乏握手機(jī)制的服務(wù)時(shí),斷路器是一種可以使用的權(quán)宜之計(jì)

3.4.在層疊失效情況下,握手是一種防止裂紋跨層蔓延的有效方法

4.在自己的低層協(xié)議中構(gòu)建握手

4.1.如果創(chuàng)建了基于套接字的協(xié)議,那么可以在其中構(gòu)建握手機(jī)制

4.2.端點(diǎn)就可以在未準(zhǔn)備好接受工作時(shí),通知其他端點(diǎn)

5.考驗(yàn)機(jī)

5.1.分布式系統(tǒng)的失效方式很難在開發(fā)環(huán)境或QA環(huán)境中顯現(xiàn)

5.2.可以創(chuàng)建考驗(yàn)機(jī)來模擬每個(gè)集成點(diǎn)另一端的遠(yuǎn)程系統(tǒng)

5.2.1.硬件工程師和機(jī)械工程師一直使用考驗(yàn)機(jī)

5.2.2.軟件工程師雖然也已經(jīng)在使用,但其考驗(yàn)機(jī)過于簡單

5.2.3.像設(shè)計(jì)應(yīng)用程序服務(wù)器一樣來設(shè)計(jì)考驗(yàn)機(jī),其中與真實(shí)應(yīng)用程序相關(guān)的那些測試,可以設(shè)計(jì)為可插拔的形式

5.3.優(yōu)秀的考驗(yàn)機(jī)嚴(yán)格測試系統(tǒng),像現(xiàn)實(shí)世界的系統(tǒng)一樣“惡毒”

5.4.考驗(yàn)機(jī)應(yīng)該給被測系統(tǒng)留下“傷疤”,它的意義就是讓被測系統(tǒng)做到不信有好事

5.4.1.考驗(yàn)機(jī)應(yīng)該像一個(gè)小“黑客”,嘗試各種不良行為來給調(diào)用方搞破壞

5.5.考驗(yàn)機(jī)會引出混沌工程

5.6.考驗(yàn)機(jī)作為一臺單獨(dú)的服務(wù)器運(yùn)行,沒有義務(wù)遵循任何接口規(guī)范,可以激發(fā)網(wǎng)絡(luò)錯(cuò)誤、協(xié)議錯(cuò)誤或應(yīng)用程序級錯(cuò)誤

5.6.1.每個(gè)系統(tǒng)最終都會偏離接口規(guī)范,因此在遠(yuǎn)程系統(tǒng)無法使用時(shí),測試本地系統(tǒng)的行為就變得至關(guān)重要

5.6.2.模擬偏離接口規(guī)范的系統(tǒng)失效方式

5.7.遠(yuǎn)程調(diào)用使用網(wǎng)絡(luò),套接字連接容易出現(xiàn)的失效

5.7.1.網(wǎng)絡(luò)傳輸問題

5.7.2.網(wǎng)絡(luò)協(xié)議問題

5.7.3.應(yīng)用程序協(xié)議問題

5.7.4.應(yīng)用程序邏輯問題

5.8.考驗(yàn)機(jī)知道其存在的意義是且僅是進(jìn)行測試

5.8.1.真正的應(yīng)用程序不會直接調(diào)用低層網(wǎng)絡(luò)API,但考驗(yàn)機(jī)可以

5.8.2.其字節(jié)發(fā)送速度能快能慢

5.8.3.能建立極長的監(jiān)聽隊(duì)列

5.8.4.能與套接字綁定卻從不發(fā)起連接

5.9.考驗(yàn)機(jī)僅是補(bǔ)充,不能取代其他測試方法

5.10.考驗(yàn)機(jī)有助于驗(yàn)證非功能性行為,同時(shí)又與遠(yuǎn)程系統(tǒng)保持隔離

6.mock對象

6.1.mock對象只能產(chǎn)生符合已定義接口的行為

6.2.mock對象通過切斷所有外部連接改進(jìn)單元測試的隔離性,通常在系統(tǒng)層級之間的邊界處使用

關(guān)鍵詞:

 

網(wǎng)站介紹  |  版權(quán)說明  |  聯(lián)系我們  |  網(wǎng)站地圖 

星際派備案號:京ICP備2022016840號-16 營業(yè)執(zhí)照公示信息版權(quán)所有 郵箱聯(lián)系:920 891 263@qq.com