suyiiyii 82ceb65c82 feat(user): 添加 OpenTelemetry支持
- 在 go.mod 中添加了 OpenTelemetry 相关的依赖包
- 在 main.go 中初始化了 OpenTelemetry Provider- 更新了导入语句,增加了 OpenTelemetry 相关的包
2025-01-22 17:12:49 +08:00
2025-01-20 21:45:01 +08:00
2025-01-22 12:56:41 +08:00
2025-01-22 13:31:42 +08:00
2025-01-21 23:27:39 +08:00

Hertz101

一个学习项目

简介

使用 kitex 框架,实现了

  • rpc 调用 (kitex)
  • hertz 作为 facade 层
  • 服务注册与发现(consul
  • 配置动态加载(viper + consul
  • docker 镜像
  • helm 模板 (manifest 分支)
  • k8s 部署
  • cicd 流水线
  • GitOps 部署(argocd

开发一个模块的流程

  1. 编写 idl 文件
  2. Makefile 中,从已有的模块复制一份,修改模块名
  3. 使用 cwgo 工具生成代码(运行刚刚写的 Makefile)
  4. 定义数据库 model
  5. 创建 cmd/migrate/migrate.go 文件,编写迁移代码(参见 gorm)
  6. 运行 cmd/migrate/migrate.go,创建数据库表
  7. 创建 cmd/gorm_gen/gen.go 文件,编写业务 sql(使用注释,参见 gorm gen
  8. 运行 cmd/gorm_gen/gen.go,生成数据库操作代码
  9. 修改 config/config.go,改成自己的配置(viper+consul
  10. 修改 日志配置,改成自己的配置(直接打印到 std)
  11. 修改 服务端口,改成一个未被占用的端口(便于在本地测试)
  12. 修改 biz/dal/mysql/mysql.go,改成自己的dsn,并初始化 gen 的 Q 对象
  13. 到 biz/service 下完善自己的业务逻辑
  14. 编写 dockerfile

一次部署的流程

  1. 代码推送到 main 分支
  2. 构建镜像并推送到镜像仓库(cicd,下同)
  3. 把镜像 tag 更新到 manifest 仓库中的 values.yaml
  4. ArgoCD 自动同步
  5. 部署完成
S
Description
No description provided
Readme 737 KiB
Languages
Go 76.9%
Dockerfile 19.3%
Makefile 2.3%
Shell 1.5%