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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
对象存储COS成本优化方案
随着上云企业越来越多,企业对用云成本问题也越发重视。业务的发展会产生海量存储需求,在云端存储数据时,如何进行成本优化,减轻业务负担呢?
云存储
2020/11/20
1.5K0
对象存储COS成本优化方案
【最佳实践】巡检项:对象存储(COS)碎片检查
对象存储的文件碎片是由于分块上传导致的。分块上传过程中,已上传但未合并的分块会以文件碎片的形式存在。
吴硕卫
2022/04/18
1.1K0
对象存储COS-腾讯云对象存储服务COS
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。COS 提供网页端管理界面、多种主流开发语言的 SDK、API 以及命令行和图形化工具,并且兼容 S3 的 API 接口,方便用户直接使用社区工具和插件。
用户3570397
2019/08/06
18.5K0
腾讯云对象存储COS新品发布——智能分层存储,自动优化您的存储成本
近日,腾讯云正式发布对象存储新品——智能分层存储,能够根据用户数据的访问模式,自动地转换数据的冷热层级,为用户提供与标准存储一致的低延迟和高吞吐的产品体验,同时具有更低的存储成本。
云存储
2020/11/12
2.2K0
腾讯云对象存储COS新品发布——智能分层存储,自动优化您的存储成本
日志投递至 COS 可选择不同存储类型
按照日志的访问频次,我们将日志分为冷热两大类,这两类日志分别有不同存储的需求。 如下表所示:
日志服务CLS小助手
2024/03/26
1960
日志投递至 COS 可选择不同存储类型
云端大数据分布式文件系统 成本优化秘笈
CHDFS(云 HDFS)是腾讯云一种提供标准 HDFS 访问协议和分层命名空间的高性能分布式文件系统,主要解决大数据场景下海量数据存储和数据分析,为实现计算与存储分离提供解决方案。
云存储
2021/02/26
7910
云端大数据分布式文件系统 成本优化秘笈
TStor OneCOS 2022新版本发布 —— TStor OneCOS对象存储专注海量数据,一套集群长久适用
TStor OneCOS简介 “ TStor OneCOS海量对象存储,是基于腾讯云公有云存储架构打造的完全自研的分布式软件定义存储,轻松支持单桶万亿对象和EB级容量,集群容量无限伸缩,同时支持自研4U60高密服务器。 ” 经过版本不断迭代,持续加强功能和优化性能,当前最新推出V1.1.1版本,主要更新如下: 小文件合并 处理海量小文件对于对象存储一直是一个巨大挑战,很难实现性能和空间利用率的兼得。基于云上存储实践经验,OneCOS底层Yotta存储引擎选择异步合并方式作为最佳方案。为了保证小文件写入性
云存储
2022/09/27
7540
TStor OneCOS 2022新版本发布 —— TStor OneCOS对象存储专注海量数据,一套集群长久适用
腾讯云对象存储COS安全方案介绍
​相信所有企业和个人开发者在选用云存储产品时都把数据安全作为重要考量标准。 本文介绍了用户如何使用腾讯云对象存储COS的事前防护、事中监控、事后追溯三个手段来保证自己的数据安全。
云存储
2020/03/03
7.4K0
运维干货|对象存储COS成本管理秘籍
成本管理是业务运维的一项重要内容,我们在使用云产品时一定要熟悉其计费规则,在保证服务质量、数据安全的前提下尽可能的降低服务运营成本,下文从预防预期外成本增长、现有成本的优化、以及成本的持续运营思路来探讨对象存储COS成本管理方案。
覃春善
2021/02/25
2.9K0
运维干货|对象存储COS成本管理秘籍
【对象存储COS】使用COS自动数据备份,解放硬盘空间
视频,照片,录音......诸如此类的文件在手机电脑里,永远是不断增多,不断占用的东西,每次空间告急时,都要花一大片时间去整理,删除照片释放这宝贵的空间,“这个删,这个删不删呢?可能以后要用......”,挑选照片还真是一个费时费力还费心的活。
Ar-Sr-Na
2024/06/03
3670
数据不再玩失踪?COS实用案例之“备份”
一周前,一位刚刚投身教育事业的朋友半夜发朋友圈哭诉到,因为笔记本突发故障,辛苦准备了一个月的教案,全部化为乌有,又要重新“历劫”了。
云存储
2020/04/09
1.7K0
数据不再玩失踪?COS实用案例之“备份”
COS CFS CBS产品对比
COS产品支持对数据进行丰富的操作和管理。 CFS产品支持数万客户共享使用且保证数据一致性。 CBS产品结合CVM,可以在其上部署丰富的应用。
卓恒
2020/12/01
7.6K1
618采购季 | 对象存储 COS 火热来袭,嗨购全场!
COS 提供了多方面的应用场景及最佳实践,包括访问控制与权限管理、性能优化、数据迁移、数据直传与备份、数据安全域名管理等实践场景,能够帮助您更快速、更方便地使用 COS 来实现您的多样化业务需求。
云存储
2022/06/07
7990
618采购季 | 对象存储 COS 火热来袭,嗨购全场!
【最佳实践】巡检项:对象存储(COS)存储桶公有读写
某客户使用COS存储进行一些文件的存储,近期发现桶中出现了一些不是自己上传的文件、一些文件被删除了,还有一些流量的产生,经排查是因为桶开启了公有读写,任何人都可以对桶进行读写操作。
xinjwang王健
2022/04/21
1.9K0
基于腾讯云存储COS的ClickHouse数据冷热分层方案
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),支持PB级数据量的交互式分析,ClickHouse最初是为YandexMetrica 世界第二大Web分析平台而开发的。多年来一直作为该系统的核心组件被该系统持续使用着。目前为止,该系统在ClickHouse中有超过13万亿条记录,并且每天超过200多亿个事件被处理。它允许直接从原始数据中动态查询并生成报告。自2016 年开源以来,ClickHouse 凭借其数倍于业界顶尖分析型数据库的极致性能,成为交互式分析领域的后起之秀,发展速度非常快。
云存储
2021/01/12
6.3K0
基于腾讯云存储COS的ClickHouse数据冷热分层方案
IDC、友商云数据上云(COS)最佳实践
本文从通用的数据上云场景,以及友商云数据迁移场景出发,介绍基于腾讯云对象存储(COS)的上云步骤,包括迁移前的环境准备工作,云上的配置与迁移工具的实施,数据的一致性校验,云上业务的切换与验证。
wainsun
2021/08/18
2.4K0
IDC、友商云数据上云(COS)最佳实践
腾讯云对象存储 COS 荣获对象存储领导力奖!!!
亚太内容分发大会暨 CDN 峰会一直致力于推动 CDN 产业深度融合发展和市场普及,现已成为亚太地区影响力最大的内容分发网络盛会。十年来,在以腾讯云、阿里云、网宿科技等亚太 CDN 产业联盟成员孜孜不辍的努力下,CDN 产业已经成为基础性设施网络,以坚定的基石之姿,支撑起中国成为世界最大的互联网市场。
云存储
2021/06/21
6.4K0
腾讯云对象存储 COS 荣获对象存储领导力奖!!!
【最佳实践】巡检项:对象存储(COS)存储桶防盗链(Referer)配置
检查腾讯云对象存储 COS 的防盗链配置情况。 当COS存储桶权限为公有读时,如果防盗链出现以下两种情况,可能会导致存储桶出现安全风险。
吴硕卫
2022/05/10
3.3K1
EMR入门学习之腾讯云对象存储COS(八)
COS(Cloud Object Storage),一种海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储,兼具性能与共享能力,适用于大数据场景,访问接口多样化,控制台、API、SDK。
披荆斩棘
2019/11/18
3.4K0
使用COS实现云数据库MySQL备份文件的多元化管理
云数据库 MySQL(TencentDB for MySQL)是腾讯云基于开源数据库 MySQL 专业打造的高性能分布式数据存储服务,让用户能够在云中更轻松地设置、操作和扩展关系数据库。同时云数据库MySQL集成了数据库的备份功能,可以针对数据库实现数据库的自动数据备份、手动数据备份以及日志备份。
HuiG
2021/03/17
2.5K0
推荐阅读
相关推荐
对象存储COS成本优化方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档