生产环境全链路压测平台 Takin

2021年11月26日 阅读数:2
这篇文章主要向大家介绍生产环境全链路压测平台 Takin,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

什么是 Takin?

Takin 是基于 Java 的开源系统,能够在无业务代码侵入的状况下,嵌入到各个应用程序节点,实现生产环境的全链路性能测试,适用于复杂的微服务架构系统。git

Takin 核心原理图github

Takin 有什么特色?

Takin 具有如下 4 个特色:数据库

(1)业务代码 0 侵入:在接入、采集和实现逻辑控制时,不须要修改任何业务代码;(2)链路治理:可以帮助业务和微服务架构分析业务链路,以技术方式得到功能视角的链路信息;
(3)性能瓶颈定位:性能测试结果能够直接展示整个链路中存在性能瓶颈的微服务架构节点;
(4)数据隔离:能够在不污染生产环境数据和日志的状况下实施性能测试,能够在生产环境对写类型接口进行直接的性能测试。segmentfault

 

Takin 与传统性能测试的区别

微服务架构在现代系统架构中已被广泛使用,业务复杂性和系统复杂性双重做用使得保障和维持整个系统的高可用性变得困难异常,同时对研发效率也有较大负面影响。为了解决性能瓶颈保证系统的高可用,须要对系统实施性能测试,但传统的性能测试有仿真性、局部性和黑盒性三大问题。架构

仿真性:传统的性能测试一般在测试环境或者性能环境实施,但这些环境都只是对生产环境的仿真,没法真正表明生产环境。微服务

局部性:传统性能测试有时会在生产环境的单一局部服务实施,或者只压测读类型的接口,但局部高可用不表明总体链路的高可用。性能

黑盒性:传统的性能测试只能得到 TPS 等性能结果,没法在复杂的微服务架构系统中定位和分析存在性能瓶颈的服务节点。测试


Takin 界面大数据

在生产环境进行性能压测是公认的最优解决方案,但这也是一件极具挑战性的事情,容易污染现网的数据库、日志等数据,进行生产环境测试数据清理时操做复杂且危险性高,为此,生产环境全链路压测技术应运而生。Takin 做为首款生产环境全链路压测开源产品,能够较大程度地帮助企业下降生产全链路压测平台的开发复杂度,在无业务代码侵入的状况下,得到链路治理、数据隔离、性能瓶颈定位等生产压测核心能力。url

 

Takin 的开源模块

Takin 开源内容主要包括三个部分:Agent 探针、控制中台以及大数据模块。在 Java 应用程序中植入探针(agent),它能收集性能数据、控制测试流量的流向,将数据上报给大数据模块,大数据模块会进行一些实时计算并对数据进行存储,控制台则负责这些业务流程的管理和展示。三个部分各司其职,为业务提供无代码侵入的、常态化的生产环境全链路压测服务。

GitHub 开源地址以下:

https://github.com/shulieTech...

开源社区:https://news.shulie.io

有问题随时找小树