效能測試需要知道點系統概念

向小雅發表於2020-09-28

服務叢集

服務叢集是有多個伺服器集中起來,進行同一種服務。
從訪問角度看,客戶通過叢集訪問服務,看起來像是隻有一個伺服器,實際上也可以對其中一臺伺服器進行單點訪問
從計算速度上看,叢集可以利用多個計算機進行平行計算,得到更高的計算速度
從備份角度看,可以用多個計算機進行備份,其中任何一臺機器出現故障,整個系統還是可以正常執行。

負載均衡

1.http重定向協議實現負載均衡
2.DNS域名解析負載均衡
3.反向代理負載均衡(Nginx)
反向代理處於web伺服器這邊,瀏覽器發出請求到反向代理伺服器,經過負載均衡演算法將請求的瀏覽器訪問轉發給不同的web伺服器處理,處理結果再由反向代理伺服器返回給瀏覽器
4.IP負載均衡
在網路層修改目標地址進行負載均衡
5.資料鏈路層負載均衡
在資料鏈路層修改mac地址進行負載均衡

快取應用

快取概念

在記憶體中儲存的資料備份,資料沒有發生本質變化時,避免直接從資料庫取資料,而是直接從快取中讀取資料

快取好處

大大降低資料庫的讀寫次數;
從快取中讀取資料,比資料庫查詢快很多。

Redis

1.Redis不僅僅支援簡單的key-value型別的資料,還支援list、set、zset、hash等資料結構的儲存
2.Redis支援master-slave(主-從)模式應用
3.Redis支援資料持久化,可以將記憶體中的資料保持在磁碟中,重啟的時候可以再次載入進行使用
4.Redis單個value的最大限制是1GB,memcached只能儲存1MB的資料

分散式框架

全鏈路壓測

伺服器&中介軟體

JVM
Tomcat
Nginx

RabbitMQ/Kafka

訊息中介軟體

利用高效可靠的非同步訊息傳遞機制的繼承分散式系統,實現不同系統之間的資料傳送和接收,並且提供規範保證資料的準確性。

MQ

訊息佇列,Message Queue,是訊息中介軟體中的一種。生產者往訊息佇列裡寫訊息,消費者可以讀取訊息佇列中的訊息。

MQ的應用場景

1.非同步處理
2.系統間應用解耦:前一個系統將要處理的內容放進訊息佇列,就不再關係後續的其他操作了,後一個系統獲取進行消費
3.流量削鋒:避免因流量過大,導致流量暴增,海量訊息堆積,應用掛掉。【這樣壓力集中在訊息中介軟體】
4.日誌處理
5.訊息通訊:訊息佇列一般內建了高效的通訊機制,因此也可以用在純的訊息通訊

訊息模型

1.P2P點對點模型:每個訊息只有一個消費者,訊息一旦被消費,就不在佇列中;傳送者和接收者沒有依賴關係,接受者不管是否執行,都不影響訊息被髮送到佇列;接收者成功接收訊息後需要向佇列應答成功。
特點:每個訊息都應該被成功處理
2.Pub/Sub釋出-訂閱模型:每個訊息可以有多個消費者;釋出者與訂閱者有依賴關係,針對某個主題(Topic)的訂閱者,必須在建立一個訂閱之後,才能消費釋出這的訊息;訂閱者必須保持執行狀態(訂閱者也可以建立一個持久的訂閱,這樣即使沒有執行,也可以接收到訊息。)

互動原理

Name Server(路由服務) 、broker(儲存、轉發訊息)、Producer(生產者)、Consumer(消費者)、Broker叢集

測試內容、問題排查

1.MQ訊息不重複【可以保證訊息不丟失】
2.MQ傳送了,但是沒有接收,怎麼查詢
3.MQ消費失敗,怎麼重新消費訊息–訊息重試
4.MQ消費失敗、容器環境訊息消費失敗怎麼排查?
5.簡單的日誌查詢
6.MQ消費先於同步返回

資料庫

悲觀鎖(先鎖,業務量大)、樂觀鎖(先預設正常,後判斷鎖,業務量小)

索引

單獨的物理的對資料庫表中一列或多列的值進行排序的一種資料結構,它是某個表中一列或多列值得集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。相當於圖書的目錄。

讀寫分離

為了確保資料庫產品的穩定性,很多資料庫擁有雙機熱備功能。也就是,第一臺資料庫伺服器,是對外提供增刪改業務的生產伺服器;第二臺資料庫伺服器,主要進行讀的操作。

分庫分表

將原本儲存在一個庫的資料分塊儲存在多個庫上,把原本儲存在一個表的資料分塊儲存在多個表上
效能設計方案

http對應應用層,TCP對應傳輸層,IP對應網路層

連線池

建立和管理一個連線的緩衝池的技術,這些連線準備好被任何需要他們的執行緒所使用。

執行緒與程式

一個應用程式對應一個程式,程式下會有多個執行緒去處理事情,比如qq開啟是一個程式,聊天、發檔案屬於一個個執行緒。

相關文章