# Tianji_Network_Sim **Repository Path**: mc6g/Tianji_Network_Sim ## Basic Information - **Project Name**: Tianji_Network_Sim - **Description**: 天基网络模拟 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-01-10 - **Last Updated**: 2023-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 天基网络代码仓库 ## 介绍 本仓库是天基网络的后台代码仓库 主要完成的工作有: - 多攻击主动防御软件功能模块开发 - 网络节点弹性功能设计、自治理模块开发及配套软件开发 - 天基网络数字孪生可视化功能模块的设计和开发 - 端、边、网、云智能协同接口与配套软件开发 具体内容 1. 基于网关的主动防御功能模块开发 2. 基于微服务架构的弹性自治以及负载均衡 3. 基于微服务的接口链路分析 4. 天基网络数字孪生可视化功能后台开发 ## 环境 go 1.18 微服务框架:go-zero [go-zero 文档](https://go-zero.dev/cn/docs/introduction) rpc 工具:protoc 数据库:Mysql ## 说明 微服务对外提供 http 接口,对内使用 rpc 调用 ## 本地启动项目 1. 根目录下执行 go mod tidy 2. 根目录下执行 etcd 3. service\satellite\rpc 目录下执行 go run satellite.go -f etc/satellite.yaml 4. service\gateway\api 目录下执行 go run gateway.go -f etc/gateway-api.yaml 5. 调用 localhost:8888/api/satellite/all ## 开发规范 ### 命名准则 1. 当变量名称在定义和最后一次使用之间的距离很短时,简短的名称看起来会更好。 2. 变量命名应尽量描述其内容,而不是类型 3. 常量命名应尽量描述其值,而不是如何使用这个值 4. 在遇到 for,if 等循环或分支时,推荐单个字母命名来标识参数和返回值 5. method、interface、type、package 推荐使用单词命名 6. package 名称也是命名的一部分,请尽量将其利用起来 7. 使用一致的命名风格 ### 文件命名规范 1. 全部小写 2. 除 unit test 外避免下划线(\_) 3. 文件名称不宜过长 ### 变量命名规范参考 1. 首字母小写 2. 驼峰命名 3. 见名知义,避免拼音替代英文 4. 不建议包含下划线(\_) 5. 不建议包含数字 #### 适用范围 局部变量 函数出参、入参 ### 函数、常量命名规范 1. 驼峰式命名 2. 可 exported 的必须首字母大写 3. 不可 exported 的必须首字母小写 4. 避免全部大写与下划线(\_)组合 ### grafana 指标参数 sum(http_server_requests_duration_ms_count{instance="192.168.190.1:8888"}) by (path) sum(increase(http_server_requests_duration_ms_count{instance="192.168.190.1:8888"}[1m])) by (path) ### 项目 docker启动 #### etcd docker network create tianji --driver bridge docker run -d --name etcd-server \ --network tianji \ --publish 2379:2379 \ --publish 2380:2380 \ --env ALLOW_NONE_AUTHENTICATION=yes \ --env ETCD_ADVERTISE_CLIENT_URLS=http://etcd-server:2379 \ bitnami/etcd:latest #### satellite启动 ##### 创建Dockerfile goctl docker -go satellite.go ##### 打包成镜像 docker build -t satellite:v1 -f service/satellite/rpc/Dockerfile . ##### 启动 docker run --name satellite --network tianji --rm -it -p 8080:8080 satellite:v1 #### gateway启动 ##### 创建Dockerfile goctl docker -go gateway.go ##### 打包成镜像 docker build -t gateway:v1 -f service/gateway/api/Dockerfile . ##### 启动 docker run --name gateway --network tianji --rm -it -p 8888:8888 gateway:v1