skywalking使用方法_分布式链路追踪 SkyWalking 源码分析——应用于应用实例的注册...

本文详细介绍了 SkyWalking 中应用与应用实例的注册过程,包括 Collector 的注册相关 API 和 Agent 调用注册 API 的具体实现。内容涵盖了应用注册、应用实例的正常和恢复注册以及心跳 API,深入解析了每个步骤和相关服务的实现细节。
摘要由CSDN通过智能技术生成

摘要: 原创出处 http://www.iocoder.cn/SkyWalking/register/ 「芋道源码」欢迎转载,保留摘要,谢谢!

本文主要基于 SkyWalking 3.2.6 正式版

  • 1. 概述
  • 2. Collector 注册相关 API
  • 2.1 应用的注册 API
  • 2.2 应用实例的正常注册 API
  • 2.3 应用实例的恢复注册 API
  • 2.4 应用实例的心跳 API
  • 3. Agent 调用注册 API

1. 概述

本文主要分享 应用与应用实例的注册。先来简单了解下注册的整体流程:

  • 应用启动,Agent 向 Collector 注册应用
  • 注册应用成功后,Agent 向 Collector 注册应用实例

下面,我们分成两个小节,分别从 API 的实现调用,分享代码的具体实现。

友情提示:推荐阅读 《探针与Collector间通讯协议》 。

2. Collector 注册相关 API

Collector 注册相关 API 相关有四个接口:

  • 2.1 应用的注册 API
  • 2.2 应用实例的正常注册 API
  • 2.3 应用实例的恢复注册 API
  • 2.4 应用实例的心跳 API

API 处理的流程大体如下:

58182bad8621a2e342f2efcd4f7e3815.png
  • 绿框部分,【2.3】【2.4】两个 API ,直接 Service 调用 DAO 方法,无需经过 Graph / Stream 相关方法。

2.1 应用的注册 API

我们先来看看 API 的定义,ApplicationRegisterService.proto ,如下图所示:

8f1fa9105bddb2f7af1f572b92de7d54.png
  • 其中,KeyWithIntegerValue 数据类型,在 KeyWithIntegerValue.proto 中定义。

2.1.1 ApplicationRegisterServiceHandler#register(...)

ApplicationRegisterServiceHandler#register(Application, StreamObserver), 代码如下:

  • 第 51 行:获得请求的应用编码( applicationCode )数组
  • 第 54 至 64 行:循环应用编码数组,获取创建应用。
  • 第 57 行:调用 IApplicationIDService#getOrCreate(applicationCode) 方法,获取创建应用,最终获得应用编号( applicationId )。
  • 第 60 至 63 行:获得到应用编号( applicationId != 0 ),则添加到响应。为什么会存在获得不到的情况呢?在下文中,我们会看到,实际异步保存应用,所以会存在获取失败的情况。当获取失败,调用方( 例如 Agent )可以重新发起该请求进行注册应用,从而在异步保存应用,获取到应用编号。
  • 第 67 至 68 行:响应。

2.1.2 IApplicationIDService#getOrCreate(...)

org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService ,继承 Service 接口,应用编号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值