亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

skyWalking自動建表-邏輯梳理

標簽:
Java

skyWalking自动建表-逻辑梳理

使用skyWalking后,发现我们不需要创建表,启动skywalking会自动创建表,遂研究官方源码,感觉oap-server设计的自动建表功能很强大,并进行逻辑梳理,仅供参考
源码地址:https://github.com/apache/skywalking.git

架构图

架构图

  • Agent(代理/探针) :负责从应用中,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到SkyWalking OAP 服务器;
  • SkyWalking OAP :负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能;
  • Storage:Tracing数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2等多种存储器,SkyWalking开发团队自己的生产环境采用ES为主;
  • SkyWalking UI:负责提供控制台,查看链路等等;

建表逻辑

1、启动时执行脚本
1.启动脚本

2、脚本内容指向:org.apache.skywalking.oap.server.starter.OAPServerStartUp
2.脚本内容

3、进行初始化操作
3.初始化操作

4、moduleManager#init方法调用BootstrapFlow#start方法,BootstrapFlow#start调用ModuleProvider#start方法
4.bootstrapflow-start

5、抽象类ModuleProvider#start方法实现类JDBCStorageProvider#start方法,此方法开始调用 modelInstaller#start方法用于重写列,使语法兼容MySQL,然后调用StorageModels#addModelListener方法用于把创建或修改表的操作通知到ModelInstaller#whenCreating
5.listener-creating

6、收到通知后,ModelInstaller#whenCreating开始建表操作
6.when-creating

7、方法内部依次进行 1.创建/更新 表字段;2.添加/更新 字段索引;3.创建/更新 关联表的字段及索引
7.create-table

8、为表添加ID字段、普通字段;添加字段类型及长度;执行建表SQL
8.execute-sql

9、添加字段类型,进行字段长度转换
9.column-definition

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消