专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Apache ShardingSphere (Incubating)性能监控指南

作者

张永伦,京东数科高级软件工程师,Apache ShardingSphere (Incubating) PPMC。长期从事分布式系统的高可用、高并发相关工作。热衷于网络IO、性能优化方面的技术挑战。目前专注于Sharding-Proxy的持续优化和APM的开发工作。


看过《Apache ShardingSphere(Incubating)对接京东白条实战》的同学应该都了解,对接白条过程中遇到的问题几乎全部是借助于SGM来定位并解决的,可见性能监控的重要性。相对于商业化的SGM产品,ShardingSphere也提供了开源的解决方案。近期,ShardingSphere的性能监控能力又得到了一次加强,为用户提供了多样化的选择,在此一并总结一下。

概念

APM(Application Performance Monitoring)是应用性能监控的缩写。目前APM的主要功能着眼于分布式系统的性能诊断,其主要功能包括调用链展示,应用拓扑分析等。

ShardingSphere并不负责如何采集、存储以及展示应用性能监控的相关数据,而是将SQL解析与SQL执行这两块数据分片的最核心的相关信息发送至应用性能监控系统,并交由其处理。 换句话说,ShardingSphere仅负责产生具有价值的数据,并通过标准协议递交至相关系统。ShardingSphere可以通过两种方式对接应用性能监控系统,下面分别介绍。

SkyWalking自动探针

ShardingSphere团队与SkyWalking团队共同合作,在SkyWalking中实现了ShardingSphere自动探针,可以将相关的应用性能数据自动发送到SkyWalking中。目前支持的版本的有:Sharding-JDBC 1.5.x和ShardingSphere 3.0.0,随后ShardingSphere 4.0.0-RC1也会很快得到支持。未来ShardingSphere的每个版本都会保证SkyWalking的自动探针可用,可以在SkyWalking的支持列表里查到具体版本:

github.com/apache/skyw…

SkyWalking最近发生了两件大事,一个是从孵化器毕业,成为Apache顶级项目;另一个是完成了新UI的升级。那么到底会有什么惊喜?接下来就让我们一起动手体验。

使用自动探针的方式,不会对代码有任何侵入,只需要搭建SkyWalking的环境就可以了。没有使用过的小伙伴不要害怕,全程几乎只要执行一个脚本就完成了,这一点非常人性化。详情见https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/README.md。

拓扑图展示

63_1.png

ShardingSphere连接两个真实数据库,每个数据库中有两个表。拓扑图中可以显示出服务间的调用类型,请求量,平响等信息。

追踪数据展示

63_2.png

从跟踪图中可以能够看到SQL解析和执行的情况。

/Sharding-Sphere/parseSQL/ : 表示本次逻辑SQL的解析性能。

63_3.png

/Sharding-Sphere/executeSQL/ : 表示具体执行的真实SQL的性能。

63_4.png

在追踪/Sharding-Sphere/executeSQL/的同一线程中,JDBC自动探针会展示真实SQL的详细信息。

63_5.png

OpenTracing规范

这种方式是使用OpenTracing API发送性能追踪数据。面向OpenTracing协议的APM产品都可以和ShardingSphere自动对接,比如SkyWalking,Zipkin和Jaeger。使用这种方式只需要在启动时配置OpenTracing协议的实现者即可。 它的优点是可以兼容所有的与OpenTracing协议兼容的产品作为APM的展现系统,如果采用公司愿意实现自己的APM系统,也只需要实现OpenTracing协议,即可自动展示ShardingSphere的链路追踪信息。 缺点是OpenTracing协议发展并不稳定,较新的版本实现者较少,且协议本身过于中立,对于个性化的相关产品的实现不如原生支持强大。

想使用SkyWalking的同学,由于有自动探针的存在,已经不需要用这种方式了。所以,接下来以Zipkin为例为大家展示另一种监控效果。

Zipkin是Twitter基于Google的论文Dapper的开源实现,用于跟踪分布式服务之间的应用数据链路,分析处理延时,帮助我们改进系统的性能和定位故障。环境搭建请参考:

zipkin.apache.org/pages/quick…

追踪数据展示

63_6.png

/Sharding-Sphere/parseSQL/

63_7.png

/Sharding-Sphere/executeSQL/

63_8.png

可以看到,今天介绍的两种方式,界面不同,但展示的信息是一样的。需要强调的是,ShardingSphere使用的OpenTracing版本是0.30.0,并不支持0.31.0及以上版本。0.31.0较之前变化较大,基础的类名都有变化,如ActiveSpan变为Scope。所以,如果想使用0.30.0以上版本,用户需要定制开发。

小结

对于新用户,推荐第一种方式,不需要考虑版本兼容性问题,插件丰富,有非常高的易用性。而且刚从Apache毕业的SkyWalking社区活跃度很高,会不断的有新东西涌现出来。对于之前已选型非SkyWalking的用户,应该使用第二种方式,实现OpenTracing接口的监控系统都可以接入。

文章永久链接:https://tech.souyunku.com/25666

未经允许不得转载:搜云库技术团队 » Apache ShardingSphere (Incubating)性能监控指南

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们