讀發佈!設計與部署穩定的分散式系統(第2版)筆記10_自動化和緩慢的響應

来源:https://www.cnblogs.com/lying7/archive/2023/06/24/17500417.html
-Advertisement-
Play Games

![](https://img2023.cnblogs.com/blog/3076680/202306/3076680-20230623222552617-668690088.png) # 1. 工業機器人 ## 1.1. 具有多層防護措施,防止對人員、機器和設施造成損害 ## 1.2. 防護措施能 ...


1. 工業機器人

1.1. 具有多層防護措施,防止對人員、機器和設施造成損害

1.2. 防護措施能限制機器人的動作和感測器的感知

1.3. 機械臂的旋轉範圍會遠遠小於它可以達到的全部運動範圍

2. 自動化

2.1. 它更像是工業機器人

2.1.1. 掌握控制層感知系統的當前狀態

2.1.2. 將其與期望的狀態進行對比

2.1.3. 對系統施加影響,使當前狀態進入到期望狀態

2.2. 自動化系統並未簡單地按照人類管理員的意願行事

2.2.1. 自動化平臺與管理員關於系統預期狀態的不同“信念”的衝突,引發了2016年8月11日鏈接聚合網站Reddit遭遇停機事故

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

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

2.4. 自動化系統面對兩套相互衝突的指令時,也會卡殼

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

2.5.1. 這段時間通常會比監控的時間間隔要長,因此請務必考慮到系統需要經過一些延遲後,才能對操作做出響應

3. 控制層

3.1. 控制層中的軟體主要管理基礎設施和應用程式,而不是直接交付用戶功能

3.1.1. 日誌記錄

3.1.2. 監控

3.1.3. 調度程式

3.1.4. 擴展控制器

3.1.5. 負載均衡器

3.1.6. 配置管理

3.2. 基礎設施管理工具可以迅速對系統產生巨大的影響,要在其內部構建限制器和防護措施,防止其快速毀掉整個系統

3.3. 控制層軟體中實現類似工業機器人的防護措施

3.3.1. 如果軟體觀測器顯示系統中80%以上的部分不可用,那麼與系統出問題相比,軟體觀測器出問題的可能性更大

3.3.1.1. 被隔離的節點無法正確地感知當前狀態

3.3.1.2. 控制系統會感知環境,但它們有可能被愚弄

3.3.2. 運用滯後原則

3.3.2.1. 快速啟動機器

3.3.2.2. 要慢慢關機

3.3.2.3. 啟動新機器要比關閉舊機器更安全

3.3.3. 當期望狀態與觀測狀態之間的差距很大時,要發出確認信號,這相當於工業機器人上的大型黃色旋轉警示燈在報警

3.3.4. 那些消耗資源的系統應該設計成有狀態的,從而檢測它們是否正在試圖啟動無限多個實例

3.3.5. 構建減速區域,緩解勢能

3.3.5.1. 控制層雖然每秒都能感知到系統已經過載,但它啟動一臺虛擬機處理負載需要花費5分鐘

3.3.5.2. 大量負載依然存在的情況下,要確保控制層不會在5分鐘內啟動300個虛擬機

4. 緩慢的響應

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

4.2. 爭著使用已經供不應求的資料庫連接,會使響應變慢,進而加劇這種爭用,導致惡性迴圈

4.3. 記憶體泄漏經常表現為響應緩慢

4.3.1. 記憶體泄漏會導致垃圾收集器過度運行,從而引發響應緩慢

4.4. 低層級的低效協議會導致網路停頓,從而導致響應緩慢

4.5. 對網站來說,響應緩慢會招致更多的流量

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

4.6. 緩慢的響應會將調用系統和被調用系統中的資源拖得動彈不得

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

4.7. 緩慢的響應傾向於逐層向上傳播,並逐漸導致層疊失效

4.7.1. 一旦陷入響應緩慢,上游系統本身的處理速度也會隨之變慢,並且當響應時間超過其自身的超時時間時,會很容易引發穩定性問題

4.8. 快速返回系統失效信息,能使調用方的系統快速完成事務處理,最終成功或是系統失效,取決於應用程式的邏輯

4.9. 讓系統具備監控自身性能的能力,就能辨別其何時違背SLA

4.9.1. 系統能跟蹤自己的響應情況,那麼就可以知道自己何時變慢

4.9.2. 系統平均響應時間超出系統所允許的時間時,可以考慮發送一個即時錯誤響應

4.9.3. 當平均響應時間超過調用方的超時時間時,應該發送這樣的響應


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • # 記錄伺服器和docker時區修改 ## 前言 我的博客是部署在docker裡面的,然後我發現評論和留言的時間和北京時間是有差別的,相差8個小時,然後發現是因為容器中的時區設置與伺服器是不一致的,所以需要設置一下。 ## 更改liunx伺服器時區 1. 查看當前時區設置 使用`date`命令查看當 ...
  • 大家好,我是沙漠盡頭的狼。 Dotnet9網站回歸Blazor重構,訪問速度確實飛快,同時用上Blazor的交互能力,站長也同步添加了幾個線上工具,這篇文章分享下Blazor的重構過程,希望對大家網站開發時做技術選型有個參考。 ![](https://img1.dotnet9.com/2023/06 ...
  • 當我們輸入ls 再按下TAB時, 會自動列出當前路徑下所有的文件; 當我們輸入ls a 再按下TAB時, 會自動列出當前路徑下所有以a開頭的文件; 若只有一個以a開頭的文件, 將會自動補全; 這是怎麼做到的? 本文將帶你一探究竟 ...
  • 端午放假,本想註冊個美團眾包騎自行車送外賣體驗一下生活,奈何這幾天北京熱的要死,只能作罷,還是苟在屋裡空調續命吧。 無事乾的時候,想著給我花盆監控升個級,換個電容的土壤檢測(`之前的腐蝕了gg了`)但是電容的是3v的,esp8266只能檢測1v的,所以買了一個新的esp32-cam,正好帶個攝像頭,... ...
  • # MVCC機制遺留的問題 **為什麼在可重覆讀級別下,幻讀沒有產生?** 回想一下在事務隔離級別那篇文章中,可串列化是通過什麼保證的? 對操作的每一行記錄加讀鎖、寫鎖和範圍鎖;任何其他事務都必須等待持有鎖的事務釋放鎖之後才能進行操作; 而可重覆讀級別相比之下唯一少的就是範圍鎖,所以無論你是否瞭解過 ...
  • (一)好好的系統,為什麼要分庫分表? 咱們先介紹下在分庫分表架構實施過程中,會接觸到的一些通用概念,瞭解這些概念能夠幫助理解市面上其他的分庫分表工具,儘管它們的實現方法可能存在差異,但整體思路基本一致。因此,在開始實際操作之前,我們有必要先掌握這些通用概念,以便更好地理解和應用分庫分表技術。 我們結 ...
  • ### 背景 在項目中有集成低代碼平臺的想法,經過多方對比最後選擇了 amis,主要是需要通過 amis 進行頁面配置,導出 json 供移動端和 PC 端進行渲染,所以接下來講一下近兩周研究 amis 的新的以及一些簡單經驗,供大家參考. ### 什麼是 amis amis 是一個低代碼前端框架, ...
  • 上次寫了一個 `SSR` 的 `DEMO`,今天寫個小 `Demo` 來從頭實現一下 `react` 的 `SSG`,來理解下 `SSG` 是如何實現的。 ## 什麼是 SSG `SSG` 即 `Static Site Generation` 靜態站點生成,是指將在構建時就提前生成靜態 `HTML` ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...