乐趣区

关于压测:生产环境全链路压测平台-Takin

什么是 Takin?

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

Takin 外围原理图

Takin 有什么特点?

Takin 具备以下 4 个特点:

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

Takin 与传统性能测试的区别

微服务架构在古代零碎架构中已被广泛应用,业务复杂性和零碎复杂性双重作用使得保障和维持整个零碎的高可用性变得艰难异样,同时对研发效率也有较大负面影响。为了解决性能瓶颈保证系统的高可用,须要对系统实施性能测试,但传统的性能测试有仿真性、局部性和黑盒性三大问题。仿真性:传统的性能测试通常在测试环境或者性能环境施行,但这些环境都只是对生产环境的仿真,无奈真正代表生产环境。局部性:传统性能测试有时会在生产环境的繁多部分服务施行,或者只压测读类型的接口,但部分高可用不代表整体链路的高可用。黑盒性:传统的性能测试只能取得 TPS 等性能后果,无奈在简单的微服务架构零碎中定位和剖析存在性能瓶颈的服务节点。

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

Takin 的开源模块

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

GitHub 开源地址如下:

https://github.com/shulieTech…

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

有问题随时找小树

退出移动版