文章40 | 阅读 30568 | 点赞0
本文主要分享 Collector Jetty Server Manager。Collector 通过该管理器,管理启动的多个 Jetty Server,例如 Agent Jetty Server、Naming Jetty Server、UI Jetty Server。
友情提示:建议胖友已经读过 《SkyWalking 源码分析 —— Collector Server Component 服务器组件》
Jetty Server Manager 在 SkyWalking 架构图处于如下位置( 红框 ) :
FROM https://github.com/apache/incubating-skywalking
下面我们来看看整体的项目结构,如下图所示 :
😈 代码量非常少,考虑到这是个单独的项目,所以单独成文。
org.skywalking.apm.collector.jetty.manager.JettyManagerModule
,实现 Module 抽象类,Jetty 管理器 Module 。
#name()
实现方法,返回模块名为 "jetty_manager"
。
#services()
实现方法,返回 Service 类名:JettyManagerService 。
org.skywalking.apm.collector.jetty.manager.JettyManagerProvider
,实现 ModuleProvider 抽象类,Jetty 管理器组件服务提供者。
#name()
实现方法,返回组件服务提供者名为 "jetty"
。
module()
实现方法,返回组件类为 JettyManagerModule 。
#requiredModules()
实现方法,返回依赖组件为空。
#prepare(Properties)
实现方法,执行准备阶段逻辑。
#registerServiceImplementation(...)
父类方法,注册到 services
。#start()
实现方法,执行启动阶段逻辑。目前是个空方法。
#notifyAfterCompleted()
实现方法,执行启动完成逻辑。
JettyServer#start()
方法,进行启动。org.skywalking.apm.collector.jetty.manager.service.JettyManagerService
,继承 Service 接口,Jetty 管理器服务接口。
#createIfAbsent(host, port, contextPath)
接口方法,创建 Jetty Server ,若不存在。
#addHandler(host, port, serverHandler)
接口方法,添加 Jetty Server 请求处理器。
org.skywalking.apm.collector.jetty.manager.service.JettyManagerServiceImpl
,Jetty 管理器服务实现类。
构造方法 ,使用来自 JettyManagerProvider 的 servers
服务器数组。这是为什么 JettyManagerProvider 没有对 servers
做新增操作,结果里面有数据的原因。
#createIfAbsent(host, port, contextPath)
实现方法,创建 Jetty Server ,若不存在。判断方式为 host + port
为唯一。
#addHandler(host, port, serverHandler)
实现方法,添加 Jetty Server 请求处理器。判断方式为 host + port
为唯一。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_42073629/article/details/119702756
内容来源于网络,如有侵权,请联系作者删除!