讀發(fā)布!設(shè)計(jì)與部署穩(wěn)定的分布式系統(tǒng)(第2版)筆記10_自動化和緩慢的響應(yīng)

讀發(fā)布!設(shè)計(jì)與部署穩(wěn)定的分布式系統(tǒng)(第2版)筆記10_自動化和緩慢的響應(yīng).png

1. 工業(yè)機(jī)器人

1.1. 具有多層防護(hù)措施,防止對人員、機(jī)器和設(shè)施造成損害

1.2. 防護(hù)措施能限制機(jī)器人的動作和傳感器的感知

1.3. 機(jī)械臂的旋轉(zhuǎn)范圍會遠(yuǎn)遠(yuǎn)小于它可以達(dá)到的全部運(yùn)動范圍

2. 自動化

2.1. 它更像是工業(yè)機(jī)器人

2.1.1. 掌握控制層感知系統(tǒng)的當(dāng)前狀態(tài)

2.1.2. 將其與期望的狀態(tài)進(jìn)行對比

2.1.3. 對系統(tǒng)施加影響,使當(dāng)前狀態(tài)進(jìn)入到期望狀態(tài)

2.2. 自動化系統(tǒng)并未簡單地按照人類管理員的意愿行事

2.2.1. 自動化平臺與管理員關(guān)于系統(tǒng)預(yù)期狀態(tài)的不同“信念”的沖突,引發(fā)了2016年8月11日鏈接聚合網(wǎng)站Reddit遭遇停機(jī)事故

2.2.2. 刻意的手動更改與自動化平臺之間的沖突

2.3. 自動化使得管理員能夠花費(fèi)較少的努力進(jìn)行大量的操作,這就是一個力量倍增器

2.4. 自動化系統(tǒng)面對兩套相互沖突的指令時,也會卡殼

2.5. 由自動化所引發(fā)的操作,需要花時間才能完成

2.5.1. 這段時間通常會比監(jiān)控的時間間隔要長,因此請務(wù)必考慮到系統(tǒng)需要經(jīng)過一些延遲后,才能對操作做出響應(yīng)

3. 控制層

3.1. 控制層中的軟件主要管理基礎(chǔ)設(shè)施和應(yīng)用程序,而不是直接交付用戶功能

3.1.1. 日志記錄

3.1.2. 監(jiān)控

3.1.3. 調(diào)度程序

3.1.4. 擴(kuò)展控制器

3.1.5. 負(fù)載均衡器

3.1.6. 配置管理

3.2. 基礎(chǔ)設(shè)施管理工具可以迅速對系統(tǒng)產(chǎn)生巨大的影響,要在其內(nèi)部構(gòu)建限制器和防護(hù)措施,防止其快速毀掉整個系統(tǒng)

3.3. 控制層軟件中實(shí)現(xiàn)類似工業(yè)機(jī)器人的防護(hù)措施

3.3.1. 如果軟件觀測器顯示系統(tǒng)中80%以上的部分不可用,那么與系統(tǒng)出問題相比,軟件觀測器出問題的可能性更大

3.3.1.1. 被隔離的節(jié)點(diǎn)無法正確地感知當(dāng)前狀態(tài)

3.3.1.2. 控制系統(tǒng)會感知環(huán)境,但它們有可能被愚弄

3.3.2. 運(yùn)用滯后原則

3.3.2.1. 快速啟動機(jī)器

3.3.2.2. 要慢慢關(guān)機(jī)

3.3.2.3. 啟動新機(jī)器要比關(guān)閉舊機(jī)器更安全

3.3.3. 當(dāng)期望狀態(tài)與觀測狀態(tài)之間的差距很大時,要發(fā)出確認(rèn)信號,這相當(dāng)于工業(yè)機(jī)器人上的大型黃色旋轉(zhuǎn)警示燈在報(bào)警

3.3.4. 那些消耗資源的系統(tǒng)應(yīng)該設(shè)計(jì)成有狀態(tài)的,從而檢測它們是否正在試圖啟動無限多個實(shí)例

3.3.5. 構(gòu)建減速區(qū)域,緩解勢能

3.3.5.1. 控制層雖然每秒都能感知到系統(tǒng)已經(jīng)過載,但它啟動一臺虛擬機(jī)處理負(fù)載需要花費(fèi)5分鐘

3.3.5.2. 大量負(fù)載依然存在的情況下,要確保控制層不會在5分鐘內(nèi)啟動300個虛擬機(jī)

4. 緩慢的響應(yīng)

4.1. 通常由過度的需求引起

4.2. 爭著使用已經(jīng)供不應(yīng)求的數(shù)據(jù)庫連接,會使響應(yīng)變慢,進(jìn)而加劇這種爭用,導(dǎo)致惡性循環(huán)

4.3. 內(nèi)存泄漏經(jīng)常表現(xiàn)為響應(yīng)緩慢

4.3.1. 內(nèi)存泄漏會導(dǎo)致垃圾收集器過度運(yùn)行,從而引發(fā)響應(yīng)緩慢

4.4. 低層級的低效協(xié)議會導(dǎo)致網(wǎng)絡(luò)停頓,從而導(dǎo)致響應(yīng)緩慢

4.5. 對網(wǎng)站來說,響應(yīng)緩慢會招致更多的流量

4.5.1. 那些等待頁面響應(yīng)的用戶,會頻繁地單擊重新加載按鈕,為已經(jīng)過載的系統(tǒng)施加更多的流量

4.6. 緩慢的響應(yīng)會將調(diào)用系統(tǒng)和被調(diào)用系統(tǒng)中的資源拖得動彈不得

4.6.1. 生成響應(yīng)較慢比拒絕連接或返回錯誤更糟

4.7. 緩慢的響應(yīng)傾向于逐層向上傳播,并逐漸導(dǎo)致層疊失效

4.7.1. 一旦陷入響應(yīng)緩慢,上游系統(tǒng)本身的處理速度也會隨之變慢,并且當(dāng)響應(yīng)時間超過其自身的超時時間時,會很容易引發(fā)穩(wěn)定性問題

4.8. 快速返回系統(tǒng)失效信息,能使調(diào)用方的系統(tǒng)快速完成事務(wù)處理,最終成功或是系統(tǒng)失效,取決于應(yīng)用程序的邏輯

4.9. 讓系統(tǒng)具備監(jiān)控自身性能的能力,就能辨別其何時違背SLA

4.9.1. 系統(tǒng)能跟蹤自己的響應(yīng)情況,那么就可以知道自己何時變慢

4.9.2. 系統(tǒng)平均響應(yīng)時間超出系統(tǒng)所允許的時間時,可以考慮發(fā)送一個即時錯誤響應(yīng)

4.9.3. 當(dāng)平均響應(yīng)時間超過調(diào)用方的超時時間時,應(yīng)該發(fā)送這樣的響應(yīng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容