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. 部署完成
Description
No description provided
Readme 737 KiB
Languages
Go 76.9%
Dockerfile 19.3%
Makefile 2.3%
Shell 1.5%