头图

生产环境全链路压测平台 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

有问题随时找小树

6 声望
2 粉丝
0 条评论
推荐阅读
微盟全链路压测:如何帮助电商业务实现 10 倍性能提升?
全链路压测之所以被誉为电商大促备战的 “核武器” ,是因为它基于实际的生产业务场景、系统环境,模拟海量的用户请求和数据对整个业务链进行压力测试,能真实反映系统的状况,对系统风险和瓶颈真正做到心中有数。

TakinTalks社区阅读 104

浅谈App的启动优化
温启动:当启动应用时,后台已有该应用的进程,但是Activity可能因为内存不足被回收。这样系统会从已有的进程中来启动这个Activity,这个启动方式叫温启动。

xuexiangjys5阅读 1.6k

分布式高可用Mysql数据库Percona XtraDB Cluster 8.0 与 Proxysql 史上最详尽用法指南
PXC是Percona XtraDB Cluster的缩写,是 Percona 公司出品的免费MySQL集群产品。PXC的作用是通过mysql自带的Galera集群技术,将不同的mysql实例连接起来,实现多主集群。在PXC集群中每个mysql节点都是可读可写的...

apollo0084阅读 7.2k评论 2

面试题:渲染十万条数据解决方案
笔者在之前的面试中遇到过“一次性给你 10000 条数据,怎么让它不卡之类的问题“,当初准备不充分,不知道怎么回答这类问题,说的方案过于简单,还扯到防抖节流之类的性能优化点上,这篇文章原本2022年1月29日计划...

山头人汉波2阅读 1.6k评论 3

封面图
页面白屏时间和首屏时间优化
不知不觉又马上过年了,突然意识到今年竟然没写一篇技术文章,整个上半年工作比较繁忙,下半年节奏缓下来之后也因为太久没动笔了就一直没动笔,可见懈怠是会习惯的。于是趁着年前,把今年工作中做的一些比较有意...

款冬4阅读 410

不可变数据工具库 immutability-helper
之前学习函数式编程语言的过程中,有 3 比较重要的特性:函数是一等公民数据不可变惰性求值JavaScript 虽然具有函数式语言的特性,但是很可惜,它还是没有具备不可变数据这一大优势。在开发复杂系统的情况下,不...

jump__jump1阅读 547

浅谈服务接口的高可用设计
作为一个后端研发人员,开发服务接口是我正常不过的工作了,这些接口不管是面向前端HTTP或者是供其他服务RPC远程调用的,都绕不开一个共同的话题就是“高可用”,接口开发往往看似简单,但保证高可用这块实现起来却...

京东云开发者3阅读 338

封面图
6 声望
2 粉丝
宣传栏