生产环境全链路压测平台 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/Takin
有问题随时找小树
最新文章
- 关于Visual Studio 未能加载各种Package包的解决方案
- IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题
- uniqid函数产生唯一id,减少碰撞几率
- Mahout之Canopy Clustering深入理解
- LeetCode Intersection of Two Linked Lists (找交叉点)
- winform windowsmediaplayer的属性
- HDOJ 1266 Reverse Number(数字反向输出题)
- VIM: 解决vi/vim中粘贴时行首出现很多缩进和空格的问题
- [ios] Xcode使用设置相关-快捷键【转】
- Pycharm之远程编程
- SQL_SERVER_2008升级SQL_SERVER_2008_R2的方法
- 自制操作系统Antz(15)——实现启动界面
- Kafka项目实战-用户日志上报实时统计之应用概述
- Imu_tk算法流程及数据采集要求和标定程序参数设置
- java之ibatis数据缓存
- 【转】WPF中PasswordBox控件的Password属性的数据绑定
- redis-java中的callback回掉机制
- Xiuno BBS 4.0 修改时间显示
- LintCode-7-二叉树的序列化和反序列化
- BeatSaber节奏光剑双手柄MR教程
热门文章
- 开源的 Web 框架哪个快?我在 GitHub 找到了答案
- MyBatis学习总结(一)——MyBatis入门学习
- Python - pip 批量更新
- C# Dapper基本三层架构使用 (四、WinForm UI层)
- 地址栏url中去掉所有参数
- 详解Java中==和equals()的区别
- HTML+CSS+JS设计注册页面
- SpringCloudAlibaba - 整合 Nacos 实现服务注册与发现
- 成本降低40%、资源利用率提高20%的 AI 应用产品云原生容器化之路
- mysql5.5根据条件进行排序查询 TP5