0x01 DTM源码的构成
DTM的源码构成主要包含两个库,分别是client和dtmsvr,值得说明的是DTM是使用Go语言开发的,其自带的客户端使用的也是Go来编写的,如果需要阅读其它语言的客户端代码,可以参考DTM官网中给出的不同语言的客户端实现。下面简单介绍一个DTM代码库中各个文件夹主要的内容:
- admin:前端后台管理。
- charts:部署和管理 Kubernetes 应用程序。
- client:DTM的Go客户端,主要是由workflow、dtmcli、dtmgrpc三个构成。
- dtmsvr:DTM的服务端。
- dtmutil:工具类。
0x02 DTM的启动过程
第一步:调用entry包的Main函数,传入的version是一个string类型,标识版本信息。
第二步:解析命令行参数,并执行相应的操作。
第三步:加载配置文件,先从环境变量里面获取,如果设定了配置文件则从配置文件中获取。
第四步:初始化存储并等待初始化成功。
第五步:启动服务。