推薦一款國內首個開源線上全鏈路壓測平台


Takin是基於Java的開源系統,可以在無業務代碼侵入的情況下,嵌入到各個應用程序節點,實現生產環境的全鏈路性能測試,適用於復雜的微服務架構系統。


Takin核心原理圖

Takin具備以下4個特點:

(1)業務代碼0侵入:在接入、采集和實現邏輯控制時,不需要修改任何業務代碼;
(2)鏈路治理:能夠幫助業務和微服務架構分析業務鏈路,以技術方式獲得功能視角的鏈路信息;
(3)性能瓶頸定位:性能測試結果可以直接展現整個鏈路中存在性能瓶頸的微服務架構節點;
(4)數據隔離:可以在不污染生產環境數據和日志的情況下實施性能測試,可以在生產環境對寫類型接口進行直接的性能測試。

Takin與傳統性能測試的區別

微服務架構在現代系統架構中已被普遍使用,業務復雜性和系統復雜性雙重作用使得保障和維持整個系統的高可用性變得困難異常,同時對研發效率也有較大負面影響。為了解決性能瓶頸保證系統的高可用,需要對系統實施性能測試,但傳統的性能測試有仿真性、局部性和黑盒性三大問題。
仿真性:傳統的性能測試通常在測試環境或者性能環境實施,但這些環境都只是對生產環境的仿真,無法真正代表生產環境。
局部性:傳統性能測試有時會在生產環境的單一局部服務實施,或者只壓測讀類型的接口,但局部高可用不代表整體鏈路的高可用。
黑盒性:傳統的性能測試只能獲得TPS等性能結果,無法在復雜的微服務架構系統中定位和分析存在性能瓶頸的服務節點。

Takin界面
在生產環境進行性能壓測是公認的最優解決方案,但這也是一件極具挑戰性的事情,容易污染現網的數據庫、日志等數據,進行生產環境測試數據清理時操作復雜且危險性高,為此,生產環境全鏈路壓測技術應運而生。Takin作為首款生產環境全鏈路壓測開源產品,可以較大程度地幫助企業降低生產全鏈路壓測平台的開發復雜度,在無業務代碼侵入的情況下,獲得鏈路治理、數據隔離、性能瓶頸定位等生產壓測核心能力。

Takin的開源模塊

Takin開源內容主要包括三個部分:Agent探針、控制中台以及大數據模塊。在Java應用程序中植入探針(agent),它能收集性能數據、控制測試流量的流向,將數據上報給大數據模塊,大數據模塊會進行一些實時計算並對數據進行存儲,控制台則負責這些業務流程的管理和展現。三個部分各司其職,為業務提供無代碼侵入的、常態化的生產環境全鏈路壓測服務。

GitHub開源地址如下:

https://github.com/shulieTech/Takin

 

安裝部署

docker環境准備

如圖,我已經准備好了一個裝有docker的服務器。

docker環境配置

修改 Docker 鏡像地址為阿里雲:

vim /etc/docker/daemon.json

更新為:

{
  "registry-mirrors": ["<https://q2gr04ke.mirror.aliyuncs.com>"] }

配置生效:

systemctl daemon-reload

下載docker鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/forcecop/forcecop:v1.0.0

請耐心等待,這可能需要花費一點時間。pull完成。

可查看鏡像。

docker images

啟動docker鏡像

docker run -d -p 80:80 -p 2181:2181 -p 3306:3306 -p 6379:6379 -p 8086:8086 -p 9000:9000 -p 10032:10032 -p 6628:6628 -p 8000:8000 -p 6627:6627 -p 8888:8888 -p 29900-29999:29900-29999 registry.cn-hangzhou.aliyuncs.com/forcecop/forcecop:v1.0.0

-d是后台啟動,-p是需要開放的端口,容器運行初始化的時候需要安裝一些必要的組件需要十分鍾的樣子,-d可以忽略后台組件的安裝信息,如果想要查看安裝信息可以去除-d參數。

啟動成功后:

更改配置

進入容器

docker exec -it 9754b1ff1491 bash

稍等片刻,等待文件初始化成功,您可以喝一杯咖啡或者聽一首歌放松一下==

配置serverUrl

修改serverUrl

vi /data/apps/dist/tro/index.html

將serverUrl配置成服務器本機IP地址:

重啟Nginx服務

nginx -s reload

配置sugre-deploy啟動命令

tip: sugre-deploy為大數據平台模塊

kill sugre-deploy

[root@30e961d36c91 data]# ps -ef | grep surge root 4336 1 66 17:48 ? 00:03:20 java -jar surge-deploy-1.0-jar-with-dependencies.jar {"172.17.0.2":"192.168.1.138"} root 4574 18 0 17:53 ? 00:00:00 grep --color=auto surge [root@30e961d36c91 data]# kill -9 4336 [root@30e961d36c91 data]# ps -ef | grep surge root 4582 18 0 17:54 ? 00:00:00 grep --color=auto surge

更改sugre-deploy的啟動命令

vi /data/install.sh

將sugre-deploy的啟動命令參數“172.17.0.2”對應的value(192.168.1.138這個)更改為宿主機的IP,保存。

重啟sugre-deploy

nohup java -jar surge-deploy-1.0-jar-with-dependencies.jar '{"172.17.0.2":"192.168.1.220"}' > surge.out 2>&1 &

進入壓測控制台

輸入壓測控制台地址:http://docker宿主機IP/tro/#/login
示例: http://192.168.1.220/tro/#/login

默認賬號密碼:賬號:admin 密碼:pamirs@2020

以上,恭喜您,成功安裝了Takin,接下來就可以開啟壓測之旅啦~

詳看:

https://docs.shulie.io/docs/opensource/opensource-1d2ckv049184j


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM