Tsung筆記之主從模型篇

前言

本篇講解Tsung大致功能組成、結構,以及主從模型,以便總體上掌握。

總體組成

tsung_controller 和 tsung 這兩個模塊,負責分佈式壓測的核心功能。

代碼組成

從代碼層次梳理一下tsung項目功能組成結構,便於一目瞭然,方便直接索引。

tsung_struct

主從模型一覽

設定環境爲分佈式環境下Tsung集羣,下面簡單梳理一下主、從節點啓動流程。

tsung_master_slave

流程大致說明:

  • 主節點(tsung_controller)通過SSH或其它遠程終端(後面會講到操作更爲輕量的完全替代SSH方式)連接到從服務器啓動tsung從節點運行時環境
  • 主節點RPC批量啓動tsung client進程
  • 主節點爲每一個從節點啓動會話監控,控制會話速度,開啓ts_client模擬終端
  • 從節點請求主節點具體業務進程,獲取會話指令以及會話具體內容
  • 從節點建立到目標壓測服務器的SOCKET網絡連接,開始會話
  • 主節點可以通過SSH/其它終端方式連接到目標壓測服務器,啓動從節點,然後收集數據(可選,具體細節,後續文字會講到)

這種模型下:

  • 全局嚴格控制模擬終端用戶生成總量和生成速度
  • 主節點動態管理從節點生命週期,從生到死,並且掌握着所有會話細節,全局掌控
  • 從節點很輕,所有需要的會話指令,都必須請求主節點獲得

主從之間交互流程

下面一張圖簡單說明了主從之間核心模塊交互流程,雖然粗略,核心點也算是涉及到了。

tsung_slave_flow_detai

後面會對具體協議部分有更爲詳細論述。

一次壓測回話(ts_client)工作流程

其實是承接上一個流程圖,已經啓動了一個ts_client模塊,即執行一個完整生命週期會話模擬終端。它的開啓依賴於Tsung Controller啓動ts_launch/ts_launch_static模塊。

大致流程圖如下:

ts_client_structure

會話什麼時候結束

  • 針對從節點上,(一個終端用戶的)一次完整會話(session):
    • 請求主節點ts_config模塊,獲取會話Session信息,包含一次會話需要完成任務總數Count
    • 從節點ts_client 每執行一次事件,任務總數Count減1
    • 當Count值爲0時,說明任務執行完畢,ts_client生命週期圓滿,一次完整會話結束
  • 從節點所分配的所有會話都結束了,表示從節點生命週期也會結束
  • 主節點控制的所有從節點都結束了,即所有會話都一一完成,那麼整體壓測也結束了,整個壓測流程結束

小結

基於Erlang天生分佈式基因支持,從節點的生死存亡完全受Tsung主節點的控制,按需創建,任務完成結束,主從協調行雲流水般順暢。

嗯,後面將介紹主從實現的一些細節。

轉自:http://www.blogjava.net/yongboy/archive/2016/07/23/431294.html

發佈了79 篇原創文章 · 獲贊 126 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章