摘要: 原创出处 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. 彩蛋

  • 《Netty 实现原理与源码解析 —— 精品合集》
  • 《Spring 实现原理与源码解析 —— 精品合集》
  • 《MyBatis 实现原理与源码解析 —— 精品合集》
  • 《Spring MVC 实现原理与源码解析 —— 精品合集》
  • 《Spring Boot 实现原理与源码解析 —— 精品合集》
  • 《数据库实体设计合集》
  • 《Java 面试题 —— 精品合集》
  • 《Java 学习指南 —— 精品合集》

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.transport5.5.0 版本,封装 SkyWalking 需要的 Elastic Search 操作。目前用于 collector-storage-es-provider 模块。

4. GRPCClient

org.skywalking.apm.collector.client.grpc.GRPCClient ,gRPC 客户端。

基于 io.grpc.grpc-core1.8.0 版本,封装 SkyWalking 需要的 gRPC 操作。目前用于 collector-remote-grpc-provider 模块。

5. H2Client

org.skywalking.apm.collector.client.h2.H2Client ,H2 数据库客户端。

基于 com.h2database.h21.4.196 版本,封装 SkyWalking 需要的 H2 数据库操作。目前用于 collector-storage-h2-provider / collector-cluster-standalone-provider 模块。

6. RedisClient

org.skywalking.apm.collector.client.redis.RedisClient ,Redis 客户端。

基于 redis.clients.jedis2.9.0 版本,封装 SkyWalking 需要的 Reids 操作。预计未来用于 collector-cluster-redis-provider 模块。

7. ZookeeperClient

org.skywalking.apm.collector.client.zookeeper.ZookeeperClient ,Zookeeper 客户端。

基于 org.apache.zookeeper.zookeeper3.4.10 版本,封装 SkyWalking 需要的 Zookeeper 操作。预计未来用于 collector-cluster-zookeeper-provider 模块。

skywalking原理_SkyWalking 源码分析 —— Collector Client Component客户端组件相关推荐

  1. skywalking使用方法_SkyWalking 源码分析—— Collector Server Component 服务器组件

    摘要: 原创出处 http://www.iocoder.cn/SkyWalking/collector-server-component/「芋道源码」欢迎转载,保留摘要,谢谢! 本文主要基于 SkyW ...

  2. SkyWalking 源码分析 —— Collector Storage 存储组件

    1. 概述 本文主要分享 SkyWalking Collector Storage 存储组件.顾名思义,负责将调用链路.应用.应用实例等等信息存储到存储器,例如,ES .H2 . 友情提示:建议先阅读 ...

  3. ConcurrentHashMap实现原理及源码分析

    ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),Con ...

  4. concurrenthashmap_ConcurrentHashMap实现原理及源码分析

    ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),Con ...

  5. SIFT原理与源码分析:DoG尺度空间构造

    <SIFT原理与源码分析>系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548 尺度空间理论 自然界中的物体随着观 ...

  6. 深入理解Spark 2.1 Core (十二):TimSort 的原理与源码分析

    在博文<深入理解Spark 2.1 Core (十):Shuffle Map 端的原理与源码分析 >中我们提到了: 使用Sort等对数据进行排序,其中用到了TimSort 这篇博文我们就来 ...

  7. 深入理解Spark 2.1 Core (十一):Shuffle Reduce 端的原理与源码分析

    我们曾经在<深入理解Spark 2.1 Core (一):RDD的原理与源码分析 >讲解过: 为了有效地实现容错,RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RD ...

  8. 深入理解Spark 2.1 Core (十):Shuffle Map 端的原理与源码分析

    在上一篇<深入理解Spark 2.1 Core (九):迭代计算和Shuffle的原理与源码分析>提到经过迭代计算后, SortShuffleWriter.write中: // 根据排序方 ...

  9. 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析

    第五.第六.第七篇博文,我们讲解了Standalone模式集群是如何启动的,一个App起来了后,集群是如何分配资源,Worker启动Executor的,Task来是如何执行它,执行得到的结果如何处理, ...

最新文章

  1. 微信小程序开发第三弹
  2. 718保时捷spyder_我要买保时捷718 Spyder的原因:新手也可以玩手动
  3. 实验开篇介绍---开发板介绍
  4. JConsole连接远程linux服务器配置
  5. Android2D绘图四
  6. Python+django网页设计入门(10):分页显示
  7. linux sudo使用和sudoers配置详解
  8. Vue之webpack之基本使用
  9. 阐述计算机在材料科学中的应用,计算机在材料科学中的应用例题
  10. C#中的常量、类型推断和作用域
  11. rabbitmq 手动提交_RabbitMQ 相关问题总结--RabbitMQ 如何确保消息发送和消费?
  12. 千淘万漉虽辛苦,吹尽狂沙始见金
  13. 37d43641ef34f1a8a47c803dcf5a13793e3b9fef
  14. [机房练习赛4.3]drive
  15. DRN: A Deep Reinforcement Learning Framework for News Recommendation理解
  16. 关于精准打击自签名伪造SSL/TLS “受信任域名证书”的方案
  17. 个人空间岁末大回报活动12月26日获奖名单
  18. 客服常用话术大全,赶紧收藏起来吧!
  19. 感觉黑客帝国的时代不远了
  20. 3D模型欣赏:2000宝马E46瓦罐 光影材质逼真,还以为是真的一样!

热门文章

  1. 最简单实现多线程的方法(Thread)
  2. Java多线程面试准备:聊聊Executor框架
  3. 使用IntentService在Service中创建耗时任务
  4. 不停应用重启oracle数据库,此类情况下解决Oracle数据库重启的四种方案
  5. (Mybatis)动态SQL
  6. Springboot mybatis逆向工程org.springframework.beans.factory.BeanCreationException: Error creating bean错误
  7. 杭电oj1072java实现bfs
  8. ffmpeg入门及java操作ffmpeg对视频进行处理
  9. html简介及常用标签
  10. 剑指Offer #08 跳台阶(递推)