6月11号日报内容

siyuan 2024-06-12 08:13:42 +08:00
parent 5ce616b2b9
commit c12d1c795b

101
2024-6-11.-.md Normal file

@ -0,0 +1,101 @@
# 完成的任务
还是继续观看代码,熟悉项目结构,并对观看的代码进行注释。随着注释的进行慢慢的对项目有了清晰的认知,今天主要是各个项目模块进行梳理,知道了每个模块是干什么的,有什么作用,一下是各个模块的介绍。
sdserver
├── cmd
│ └── clouds
│ ├── main.go // 程序入口,负责初始化服务
│ └── root.go // 定义Cobra根命令包括各种命令选项和处理逻辑等。
├── conf
│ ├── clouds-dev.ini // 开发环境配置文件
│ └── clouds-world.ini // 生产环境配置文件
├── grpcapi
│ └── device // 设备管理服务pb文件
├── grpcser
│ ├── cmd // 对应的是设备管理服务grpc接口的具体处理逻辑
│ ├── consts // 定义了一些常量,包括struct等
│ ├── reason // 定义了一些错误码
│ ├── service // 定义了设备管理服务grpc接口
│ └── grpc.go // grpc服务的初始化
├── models
│ ├── config //定义了一些代理配置
│ ├── consts //定义product和代理的常量
│ ├── errors //定义了一些错误码
│ ├── msg //云端消息的处理逻辑
│ ├── nathole //定义了一些nat的处理逻辑
│ ├── plugin //定义了一些代理的处理逻辑
│ └── proto //处理UDP数据包转发操作
├── server
│ ├── controller //定义了一些控制器.例如端口管理,代理管理等
│ ├── db //redis初始化
│ ├── group //定义Http和Tcp的Group
│ ├── platform //监控器,用于定期收集信息并同步到云端
│ ├── ports //端口的处理逻辑
│ ├── proxy //代理的处理逻辑,例如Http代理Tcp代理等
│ ├── stats // 获取系统信息
│ ├── control.go
│ ├── dashboard.go // 监控指标
│ ├── dashboard_api.go // 监控指标API接口信息
│ ├── grpc.go // grpc监控指标
│ └── serverService.go
└── utils
├── cmap //并发安全的map
├── log //日志处理逻辑
├── metric //监控指标
├── net //网络处理逻辑
├── util //一些工具函数
├── version //版本信息
└── vhost //frp隧道处理
# 学到了什么?
先了解大体内容知道了每个模块的作用后然后从main.go利用深搜方法阅读每个细节。本项目主要是用 Cobra命令进行初始化启动的 配置文件加载的流程为用os读取流然后转化为string在通过string流转化为相应的内容加载进来这样做是否过于繁琐配置文件很多内容需要手动解析虽然能让代码更加清晰但具有很多冗余代码考虑使用viper
在配置文件初始化之后就要加载项目的核心文件了首先加载启动consul然后在初始化项目的主服务项目的主服务中包含一下模块
1. muxer *mux.Mux 采用的是多路复用器并没有采用Gin框架考虑到是否因为项目需要更高的灵活性
2. listener frpNet.Listener kcpListener frpNet.Listener websocketListener frpNet.Listener tlsListener frpNet.Listener 这些都是内网穿透工具方便利用公网Ip访问局域网主机内容
3. ctlManager *ControlManager 管理多个Control实例每个Control实例对应一个客户端
4. pxyManager *proxy.ProxyManager 这是代理管理者,管理所有的代理
5. httpVhostRouter *vhost.VhostRouters http虚拟隧道管理者
6. rc *controller.ResourceController 所有的资源管理者,例如可用端口,系统资源信息,以及网络管理等。
7. statsCollector stats.Collector 用于收集服务和代理的状态信息
8. tlsConfig *tls.Config Tls 配置
9. redisDB *db.RedisDB pubRedis *db.RedisDB Redis的一些配置包括公共redis
# 未完成的任务