您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
分布式治理——可观察性
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
分布式治理——可观察性
Apache ShardingSphere
2021-01-19
IP归属:未知
23520浏览
# 背景 APM 是应用性能监控的缩写。目前 APM 的主要功能着眼于分布式系统的性能诊断,其主要功能包括调用链展示,应用拓扑分析等。 Apache ShardingSphere 并不负责如何采集、存储以及展示应用性能监控的相关数据,而是将 SQL 解析与 SQL 执行这两块数据分片的最核心的相关信息发送至应用性能监控系统,并交由其处理。 换句话说,Apache ShardingSphere 仅负责产生具有价值的数据,并通过标准协议递交至相关系统。Apache ShardingSphere 可以通过两种方式对接应用性能监控系统。 第一种方式是使用 OpenTracing API 发送性能追踪数据。面向 OpenTracing 协议的 APM 产品都可以与 Apache ShardingSphere 自动对接,比如 SkyWalking,Zipkin 和 Jaeger。 使用这种方式只需要在启动时配置 OpenTracing 协议的实现者即可。 它的优点是可以兼容所有的与 OpenTracing 协议兼容的产品作为 APM 的展现系统,如果采用公司愿意实现自己的 APM 系统,也只需要实现 OpenTracing 协议,即可自动展示 Apache ShardingSphere 的链路追踪信息。 缺点是 OpenTracing 协议发展并不稳定,较新的版本实现者较少,且协议本身过于中立,对于个性化的相关产品的实现不如原生支持强大。 第二种方式是使用 SkyWalking 的自动探针。 [Apache ShardingSphere](https://shardingsphere.apache.org) 团队与[Apache SkyWalking](https://skywalking.apache.org) 团队共同合作,在 SkyWalking 中实现了 Apache ShardingSphere 自动探针,可以将相关的应用性能数据自动发送到 SkyWalking 中。 # 使用方法 ## 使用 OpenTracing 协议 * 方法1:通过读取系统参数注入APM系统提供的 Tracer 实现类 启动时添加参数 ``` -Dorg.apache.shardingsphere.tracing.opentracing.tracer.class=org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer ``` 调用初始化方法 ```java ShardingTracer.init(); ``` * 方法2:通过参数注入APM系统提供的 Tracer 实现类 ```java ShardingTracer.init(new SkywalkingTracer()); ``` *注意:使用 SkyWalking 的 OpenTracing 探针时,应将原 Apache ShardingSphere 探针插件禁用,以防止两种插件互相冲突* ## 使用 SkyWalking 自动探针 请参考 [SkyWalking 部署手册](https://github.com/apache/skywalking/blob/5.x/docs/cn/Quick-start-CN.md)。 # 效果展示 无论使用哪种方式,都可以方便的将APM信息展示在对接的系统中,以下以 SkyWalking 为例。 ## 应用架构 使用 ShardingSphere-Proxy 访问两个数据库`192.168.0.1:3306`和`192.168.0.2:3306`,且每个数据库中有两个分表。 ## 拓扑图展示 ![](//img1.jcloudcs.com/developer.jdcloud.com/1841ffdf-654e-4d32-a5cf-6110432c640a20210118132843.png) 从图中看,用户访问 18 次 ShardingSphere-Proxy 应用,每次每个数据库访问了两次。这是由于每次访问涉及到每个库中的两个分表,所以每次访问了四张表。 ## 跟踪数据展示 ![](//img1.jcloudcs.com/developer.jdcloud.com/f7e883e6-95ee-4d67-b934-602116465d6220210118132907.png) 从跟踪图中可以能够看到 SQL 解析和执行的情况。 `/Sharding-Sphere/parseSQL/` : 表示本次 SQL 的解析性能。 ![](//img1.jcloudcs.com/developer.jdcloud.com/f4a534f4-cb9e-4d64-b243-5565fa9c0abd20210118132926.png) `/Sharding-Sphere/executeSQL/` : 表示具体执行的实际 SQL 的性能。 ![](//img1.jcloudcs.com/developer.jdcloud.com/b619b6aa-7ed6-45c9-9e9b-2282c044867c20210118132947.png) ## 异常情况展示 ![](//img1.jcloudcs.com/developer.jdcloud.com/b9b40d04-852d-4019-9f82-f441da0d2dfe20210118133008.png) 从跟踪图中可以能够看到发生异常的节点。 `/Sharding-Sphere/executeSQL/` : 表示执行 SQL 异常的结果。 ![](//img1.jcloudcs.com/developer.jdcloud.com/79861f9f-9c5d-4710-8341-aa6cd12965ed20210118133034.png) `/Sharding-Sphere/executeSQL/` : 表示执行 SQL 异常的日志。 ![](//img1.jcloudcs.com/developer.jdcloud.com/befbe970-7d8b-425b-a744-d9a90d484ff420210118133055.png)
原创文章,需联系作者,授权转载
上一篇:分布式治理——注册中心与第三方组件依赖
下一篇:UE Design | JDCD·分享-B端业务系统用户权限交互可用性设计-原理详解
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
数据库技术的发展与变革方兴未艾,NewSQL的出现,只是将各种所需技术组合在一起,而这些技术组合在一起所实现的核心功能,推动着云原生数据库的发展。 NewSQL的三种分类中,新架构和云数据库涉及了太多与数据库相关的底层实现,为了保证本文的范围不至太过发散,我们重点介绍透明化分片数据库中间件的核心功能与实现原理,另外两种类型的NewSQL在核心功能上类似,但实现原理会有所差别。
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
Apache ShardingSphere针对新业务上线、旧业务改造分别提供了相应的全套脱敏解决方案。
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
ShardingSphere对于XA方案,提供了一套SPI解决方案,对Narayana进行了整合,Narayana初始化流程,开始事务流程,获取连接流程,提交事务流程,回滚事务流程。
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
5.x 是 Apache ShardingSphere从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。欢迎大家测试使用!
最新回复
丨
点赞排行
共0条评论
Apache ShardingSphere
文章数
96
阅读量
231327
作者其他文章
01
突破关系型数据库桎梏:云原生数据库中间件核心剖析
01
Apache ShardingSphere数据脱敏全解决方案详解(上)
01
Shardingsphere整合Narayana对XA分布式事务的支持(4)
01
从中间件到分布式数据库生态,ShardingSphere 5.x革新变旧
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号