如何對分布式系統進行測試
>> 問題摘要
目前分布式系統在產品上的應用比較多,相對而言分布式系統執行環境比較複雜。分布式的一些特點,例如,網路化、開放性、動態性、實時性,使得測試難度加大很多。當前,分布式系統測試的方法比較零散,其中有一些測試方法還有待提高。
>> 問題背景
有以下三個方面研究:非同步測試工具、時序控制方法、資料正確性和完整性驗證。非同步測試工具,在分布式中非同步通訊較常見,對這塊的測試希望更加方便,向自動化方式發展。分布式的資料庫儲存量是驚人的,對其中資料的正確性完整性的測試尤其重要,同時因為資料量很大,希望能夠在處理速度上進行優化,盡可能在短時間內完成處理。
分布式測試環境的初始狀態是確定的、已知的,但隨著系統的執行,各種動態實體在環境中變化,同時對環境產生影響,使得環境也發生某些變化,這種動態變化帶來了不確定性。分布式測試系統必須具有處理這種不確定性的能力。
>> 當前的研究和技術現狀
使用系統級別測試,組建大規模的測試集群模擬線上環境,可以在模擬環境中進行壓力負載、效能**和功能業務聯調等方面的測試,以發現在小規模環境中無法發現的問題。
在環境異常場景,利用斷鏈路、容錯機制重連機制模擬丟包異常情況;使用模擬和錄製回放等手段重現重包問題。利用非同步測試框架模擬非同步時序混亂情況。對於資源類異常、磁碟讀寫失敗、磁碟滿、記憶體分配失敗、頻寬資源不足,利用相關的工具可以進行模擬實驗。同
時採取注入的方式來模擬更多異常。
>> 技術關鍵點
1. 預知異常情況:通常會出現預料之外的異常情況,需要能夠預知系統運**況,以便應對突發情況。
2. 大型環境的模擬:有些問題只會在複雜的環境中觸發,但構造維護大型環境的成本太高,需要小成本的方法。
3. 非確定性:如何在不影響系統正常執行的前提下,通過技術手段避免由於系統內部併發或並行執行導致的執行非確定性問題。
>> 實現後的價值
硬體和軟體資源有限的情況下,提高分布式系統的測試效率以及質量,提高分布式系統測試的深入度,以期發現更多深層次的問題,更早的,更容易的暴露出分布式的問題。
如何理解分布式系統
你女朋友是高可用麼?分布式系統的概念,技術 於戀愛,又高於戀愛 1.高可用 就算失戀了,可以迅速和另乙個女生戀愛,永遠不會是單身狀態 2.註冊中心 你和你女朋友去民政局登記,民政局就是註冊中心,掉線的代價就是離婚 3.負載均衡 你和多個女朋友輪流約會。星期一,三,五跟a約會,二,四,六和b約會,叫r...
如何學習分布式系統
2019年,做大資料的開發已經6年了,這期間分布式系統的知識學習了不少,但基本都是 於專案需要而零敲碎打,沒有系統性的融會貫通提綱挈領,在一件小事的觸動之下,決定將分布式系統做一次系統性的學習。網上搜尋 如何系統性的學習分布式系統 得到的答案除了知識點過於零散的,剩下就是不適合我的實際情況的,主要因...
談談自己對分布式的理解
現在常用的開源分布式框架乙個是阿里開源的dubbo,還有乙個就是spring cloud 最初的服務化解決方案是 相同服務提供乙個統一的網域名稱,然後客戶端傳送http請求,由nginx負責請求分發和跳轉,耦合了服務呼叫邏輯,相當於乙個重量級的esb 有以下幾個缺點 1 作為消費者不知道由哪個服務例...