Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >链路追踪 SkyWalking 源码分析 —— Collector gRPC Server Manager

链路追踪 SkyWalking 源码分析 —— Collector gRPC Server Manager

作者头像
芋道源码
发布于 2019-05-09 11:57:16
发布于 2019-05-09 11:57:16
1.4K0
举报
文章被收录于专栏:芋道源码1024芋道源码1024

1. 概述

本文主要分享 Collector gRPC Server Manager。Collector 通过该管理器,管理启动的多个 gRPC Server,例如 Agent gRPC Server、Remote gRPC Server 。

友情提示:建议胖友已经读过 《SkyWalking 源码分析 —— Collector Server Component 服务器组件》 另外,本文和 《SkyWalking 源码分析 —— Collector Jetty Server Manager》 相似度 99%

gRPC Server Manager 在 SkyWalking 架构图处于如下位置( 红框 ) :

FROM https://github.com/apache/incubating-skywalking

下面我们来看看整体的项目结构,如下图所示 :

? 代码量非常少,考虑到这是个单独的项目,所以单独成文。

2. GRPCManagerModule

org.skywalking.apm.collector.grpc.manager.GRPCManagerModule ,实现 Module 抽象类,gRPC Server 管理器 Module 。

#name() 实现方法,返回模块名为 "gRPC_manager"

#services() 实现方法,返回 Service 类名:GRPCManagerService 。

3. GRPCManagerProvider

org.skywalking.apm.collector.grpc.manager.GRPCManagerProvider ,实现 ModuleProvider抽象类,gRPC Server 管理器组件服务提供者。

#name() 实现方法,返回组件服务提供者名为 "gRPC"

module() 实现方法,返回组件类为 GRPCManagerModule 。

#requiredModules() 实现方法,返回依赖组件为空。


#prepare(Properties) 实现方法,执行准备阶段逻辑。

  • 第 55 行 :创建 GRPCManagerServiceImpl 对象,并调用 #registerServiceImplementation(…) 父类方法,注册到 services

#start() 实现方法,执行启动阶段逻辑。目前是个空方法

#notifyAfterCompleted() 实现方法,执行启动完成逻辑。

  • 第 63 至 69 行 :遍历注册的服务器列表,逐个调用 GRPCServer#start() 方法,进行启动。

4. GRPCManagerService

org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService ,继承 Service接口,gRPC Server 管理器服务接口

#createIfAbsent(host, port) 接口方法,创建 gRPC Server ,若不存在。

怎么没有类似 JettyManagerService 的 #addHandler(...) 方法?目前是调用方直接调用 #createIfAbsent(host, port) 方法,获得 gRPC Server 后,后调用 Server#addHandler(ServerHandler) 方法。例如:

  • `AgentModuleGRPCProvider#start(Properties)`
  • `RemoteModuleGRPCProvider#start(Properties)`

4.1 GRPCManagerServiceImpl

org.skywalking.apm.collector.grpc.manager.service.GRPCManagerServiceImpl ,gRPC Server 管理器服务实现类

构造方法 ,使用来自 GRPCManagerProvider 的 servers 服务器数组。这是为什么 GRPCManagerProvider 没有对 servers 做新增操作,结果里面有数据的原因

#createIfAbsent(host, port) 实现方法,创建 gRPC Server ,若不存在。判断方式为 host + port为唯一。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芋道源码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
链路追踪 SkyWalking 源码分析 —— Collector Jetty Server Manager
本文主要分享 Collector Jetty Server Manager。Collector 通过该管理器,管理启动的多个 Jetty Server,例如 Agent Jetty Server、Naming Jetty Server、UI Jetty Server。
芋道源码
2019/06/21
6630
链路追踪 SkyWalking 源码分析 —— Collector Jetty Server Manager
链路追踪 SkyWalking 源码分析 —— Collector Naming Server 命名服务
本文主要分享 Collector Naming Server 命名服务。主要包含如下部分:
芋道源码
2019/05/15
6220
链路追踪 SkyWalking 源码分析 —— Collector Naming Server 命名服务
链路追踪 SkyWalking 源码分析 —— Collector Storage 存储组件
本文主要分享 SkyWalking Collector Storage 存储组件。顾名思义,负责将调用链路、应用、应用实例等等信息存储到存储器,例如,ES 、H2 。
芋道源码
2019/05/24
1.6K0
链路追踪 SkyWalking 源码分析 —— Collector Server Component 服务器组件
本文主要分享 SkyWalking Collector Server Component 服务器组件。Collector 通过服务器,提供 API 接口给调用方,例如 Agent 、WebUI 。
芋道源码
2019/06/21
7000
链路追踪 SkyWalking 源码分析 —— Collector Server Component 服务器组件
分布式链路追踪 SkyWalking 源码分析 —— Collector 初始化
本文主要分享 SkyWalking Collector 启动初始化的过程。在分享的过程中,我们会简单介绍 Collector 每个模块及其用途。
芋道源码
2019/06/21
1.1K0
分布式链路追踪 SkyWalking 源码分析 —— Collector 初始化
分布式链路追踪 SkyWalking 源码分析 —— Collector Cluster 集群管理
本文主要分享 SkyWalking Collector Cluster Module,负责集群的管理,即 Collector 节点的注册于发现。
芋道源码
2019/06/21
7410
分布式链路追踪 SkyWalking 源码分析 —— Collector Cluster 集群管理
链路追踪 SkyWalking 源码分析 —— Collector Cache 缓存组件
本文主要分享 SkyWalking Collector Cache Module,缓存组件。该组件用于缓存 Application 、Instance 、ServiceName 等常用且不变的数据,以提升性能。
芋道源码
2019/06/19
6410
链路追踪 SkyWalking 源码分析 —— Collector Cache 缓存组件
链路追踪 SkyWalking 源码分析 —— Collector Queue 队列组件
本文主要分享 SkyWalking Collector Queue Module,队列组件。该组件被 Collector Streaming Module 流式处理使用,提供异步执行的特性。
芋道源码
2019/05/17
6100
链路追踪 SkyWalking 源码分析 —— Collector Queue 队列组件
分布式链路追踪 SkyWalking 源码分析 —— Collector Remote 远程通信服务
本文主要分享 SkyWalking Collector Remote 远程通信服务。该服务用于 Collector 集群内部通信。
芋道源码
2019/07/05
7000
分布式链路追踪 SkyWalking 源码分析 —— Collector Remote 远程通信服务
链路追踪 SkyWalking 源码分析 —— Collector Streaming Computing 流式处理(一)
摘要: 原创出处 http://www.iocoder.cn/SkyWalking/collector-streaming-first/ 「芋道源码」欢迎转载,保留摘要,谢谢!
芋道源码
2019/05/31
9500
链路追踪 SkyWalking 源码分析 —— Collector Client Component 客户端组件
摘要: 原创出处 http://www.iocoder.cn/SkyWalking/collector-client-component/ 「芋道源码」欢迎转载,保留摘要,谢谢!
芋道源码
2019/06/21
6750
链路追踪 SkyWalking 源码分析 —— Collector Client Component 客户端组件
分布式链路追踪 SkyWalking 源码分析 —— Agent 收集 Trace 数据
本文主要分享【第一部分】 SkyWalking Agent 收集 Trace 数据。文章的内容顺序如下:
芋道源码
2019/08/08
4K0
分布式链路追踪 SkyWalking 源码分析 —— Agent Remote 远程通信服务
本文主要分享 SkyWalking Agent Remote 远程通信服务。该服务用于 Agent 和Collector 集群的通信。
芋道源码
2019/07/16
1.4K0
分布式链路追踪 SkyWalking 源码分析 —— Agent Remote 远程通信服务
链路追踪 SkyWalking 源码分析 —— Collector Streaming Computing 流式处理(二)
本文接 《SkyWalking 源码分析 —— Collector Streaming Computing 流式处理(一)》 ,主要分享 Collector Streaming 流式处理的第二部分。主要包含如下部分:
芋道源码
2019/06/15
5220
分布式链路追踪 SkyWalking 源码分析 —— Agent DictionaryManager 字典管理
摘要: 原创出处 http://www.iocoder.cn/SkyWalking/agent-dictionary/ 「芋道源码」欢迎转载,保留摘要,谢谢!
芋道源码
2019/07/30
6120
链路追踪 SkyWalking 源码分析 —— Collector 接收 Trace 数据
本文主要分享【第三部分】 SkyWalking Collector 接收 Trace 数据。
芋道源码
2020/02/20
1.1K0
链路追踪 SkyWalking 源码分析 —— Collector 接收 Trace 数据
分布式链路追踪 SkyWalking 源码分析 —— 应用于应用实例的注册
我们先来看看 API 的定义,ApplicationRegisterService.proto ,如下图所示:
芋道源码
2019/07/28
8990
基于 SkyWalking 实现服务链路追踪
SkyWalking 在逻辑上分为四部分:探针、平台后端、存储和用户界面。其架构图如下:
端碗吹水
2020/09/23
1.4K0
基于 SkyWalking 实现服务链路追踪
Kubernetes运维-部署Skywalking实现链路追踪
微服务架构已经是一个很通用的系统架构,常见的技术栈如下图所示,这张架构图基本涵括了当前微服务体系下的各种技术栈,可能不同的技术栈有不同的开源实现。
王先森sec
2024/01/24
3.1K2
Kubernetes运维-部署Skywalking实现链路追踪
聊聊skywalking的jvm-receiver-plugin
skywalking-6.6.0/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
code4it
2020/03/25
7500
推荐阅读
链路追踪 SkyWalking 源码分析 —— Collector Jetty Server Manager
6630
链路追踪 SkyWalking 源码分析 —— Collector Naming Server 命名服务
6220
链路追踪 SkyWalking 源码分析 —— Collector Storage 存储组件
1.6K0
链路追踪 SkyWalking 源码分析 —— Collector Server Component 服务器组件
7000
分布式链路追踪 SkyWalking 源码分析 —— Collector 初始化
1.1K0
分布式链路追踪 SkyWalking 源码分析 —— Collector Cluster 集群管理
7410
链路追踪 SkyWalking 源码分析 —— Collector Cache 缓存组件
6410
链路追踪 SkyWalking 源码分析 —— Collector Queue 队列组件
6100
分布式链路追踪 SkyWalking 源码分析 —— Collector Remote 远程通信服务
7000
链路追踪 SkyWalking 源码分析 —— Collector Streaming Computing 流式处理(一)
9500
链路追踪 SkyWalking 源码分析 —— Collector Client Component 客户端组件
6750
分布式链路追踪 SkyWalking 源码分析 —— Agent 收集 Trace 数据
4K0
分布式链路追踪 SkyWalking 源码分析 —— Agent Remote 远程通信服务
1.4K0
链路追踪 SkyWalking 源码分析 —— Collector Streaming Computing 流式处理(二)
5220
分布式链路追踪 SkyWalking 源码分析 —— Agent DictionaryManager 字典管理
6120
链路追踪 SkyWalking 源码分析 —— Collector 接收 Trace 数据
1.1K0
分布式链路追踪 SkyWalking 源码分析 —— 应用于应用实例的注册
8990
基于 SkyWalking 实现服务链路追踪
1.4K0
Kubernetes运维-部署Skywalking实现链路追踪
3.1K2
聊聊skywalking的jvm-receiver-plugin
7500
相关推荐
链路追踪 SkyWalking 源码分析 —— Collector Jetty Server Manager
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档