链路追踪 SkyWalking 源码分析 —— Collector Client Component 客户端组件
点击上方“芋道源码”,选择“设为星标”
做积极的人,而不是积极废人!
源码精品专栏
摘要: 原创出处 http://www.iocoder.cn/SkyWalking/collector-client-component/ 「芋道源码」欢迎转载,保留摘要,谢谢!
本文主要基于 SkyWalking 3.2.6 正式版
1. 概述
2. Client
3. ElasticSearchClient
4. GRPCClient
5. H2Client
6. RedisClient
7. ZookeeperClient
666. 彩蛋
1. 概述
本文主要分享 SkyWalking Collector Client Component 客户端组件。Collector 通过客户端,和其他服务进行通信,例如 Elastic Search 、Zookeeper 、H2 等等。
Client Component 在 SkyWalking 架构图处于如下位置( 红框 ) :
FROM https://github.com/apache/incubating-skywalking
![]()
下面我们来看看整体的项目结构,如下图所示 :
OK,我们从接口到实现的顺序进行分享。
2. Client
org.skywalking.apm.collector.client.Client
,客户端接口。其定义接口方法如下:
#initialize()
方法,初始化客户端。#shutdown()
方法,关闭客户端。
Client 的实现类,如下类图:
3. ElasticSearchClient
org.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient
,Elastic Search 客户端。
基于 org.elasticsearch.client.transport
的 5.5.0
版本,封装 SkyWalking 需要的 Elastic Search 操作。目前用于 collector-storage-es-provider
模块。
4. GRPCClient
org.skywalking.apm.collector.client.grpc.GRPCClient
,gRPC 客户端。
基于 io.grpc.grpc-core
的 1.8.0
版本,封装 SkyWalking 需要的 gRPC 操作。目前用于 collector-remote-grpc-provider
模块。
5. H2Client
org.skywalking.apm.collector.client.h2.H2Client
,H2 数据库客户端。
基于 com.h2database.h2
的 1.4.196
版本,封装 SkyWalking 需要的 H2 数据库操作。目前用于 collector-storage-h2-provider
/ collector-cluster-standalone-provider
模块。
6. RedisClient
org.skywalking.apm.collector.client.redis.RedisClient
,Redis 客户端。
基于 redis.clients.jedis
的 2.9.0
版本,封装 SkyWalking 需要的 Reids 操作。预计未来用于 collector-cluster-redis-provider
模块。
7. ZookeeperClient
org.skywalking.apm.collector.client.zookeeper.ZookeeperClient
,Zookeeper 客户端。
基于 org.apache.zookeeper.zookeeper
的 3.4.10
版本,封装 SkyWalking 需要的 Zookeeper 操作。预计未来用于 collector-cluster-zookeeper-provider
模块。
欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:
已在知识星球更新源码解析如下:
如果你喜欢这篇文章,喜欢,转发。
生活很美好,明天见(。・ω・。)ノ♡