feat: 添加微服务模板基础架构

- 创建基于 CloudWego Hertz 的 Go 微服务脚手架
- 集成 Nacos 服务注册/发现功能
- 添加 gRPC 客户端支持
- 实现环境变量配置管理 (.env.example)
- 添加 HTTP 中间件 (Recovery, AccessLog, CORS)
- 配置 Gitea CI/CD 构建部署流程

BREAKING CHANGE: 项目结构调整,从简单的 API 服务升级为完整的微服务架构
This commit is contained in:
shiran
2026-04-15 11:13:38 +08:00
parent 8654cd6e5c
commit 6050d11f27
30 changed files with 1643 additions and 358 deletions
+34 -16
View File
@@ -1,39 +1,57 @@
package main
import (
"apiServer_service/utils/logger"
"apiServer_service/utils/nacos"
"fmt"
"os"
"os/signal"
"syscall"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/joho/godotenv"
"log"
"os"
)
func init() {
// 在 init 中加载 .env 文件
err := godotenv.Load(".env")
if err != nil {
log.Fatal("Error loading .env file")
if err := godotenv.Load(".env"); err != nil {
fmt.Println("Warning: .env file not found, using system environment variables")
}
}
func main() {
host := os.Getenv("HOST")
port := os.Getenv("PORT")
if host == "" || port == "" {
logger.Fatal("Config", "HOST 和 PORT 环境变量必须设置")
}
h := server.Default(
server.WithHostPorts(host + ":" + port),
server.WithHostPorts(host+":"+port),
server.WithExitWaitTime(0),
)
SetupRoutes(h)
// 注册 nacos 服务
err := nacos.RegisterService()
if err != nil {
log.Println("nacos register service error", err)
if os.Getenv("NACOS_SERVICE_NAME") != "" {
if err := nacos.RegisterService(); err != nil {
logger.Warn("Nacos", "服务注册失败: ", err)
} else {
logger.Info("Nacos", "服务注册成功")
}
}
// 启动服务器
err = h.Run()
if err != nil {
log.Fatal(err)
return
go func() {
h.Spin()
}()
logger.Info("Server", fmt.Sprintf("服务启动于 %s:%s", host, port))
quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
logger.Info("Server", "正在关闭服务...")
if err := h.Close(); err != nil {
logger.Error("Server", "关闭失败: ", err)
}
logger.Info("Server", "服务已停止")
}