Micro-Starter-Kit 项目教程

Micro-Starter-Kit 项目教程

micro-starter-kitCloud Native GoLang Microservices - gRPC, GraphQL项目地址:https://gitcode.com/gh_mirrors/mi/micro-starter-kit

1. 项目的目录结构及介绍

Micro-Starter-Kit 是一个用于构建云原生 GoLang 微服务的开源项目。以下是项目的目录结构及其介绍:

micro-starter-kit/
├── cmd/
│   ├── demo/
│   │   └── main.go
│   └── emailer/
│       └── main.go
├── config/
│   ├── config.dev.yaml
│   └── config.prod.yaml
├── internal/
│   ├── service/
│   │   └── service.go
│   └── repository/
│       └── repository.go
├── pkg/
│   ├── logger/
│   │   └── logger.go
│   └── utils/
│       └── utils.go
├── Makefile
├── go.mod
├── go.sum
└── README.md

目录结构介绍

  • cmd/: 包含项目的启动文件,每个子目录对应一个微服务。

    • demo/: 包含 demo 服务的启动文件 main.go
    • emailer/: 包含 emailer 服务的启动文件 main.go
  • config/: 包含项目的配置文件,如开发环境和生产环境的配置文件。

    • config.dev.yaml: 开发环境的配置文件。
    • config.prod.yaml: 生产环境的配置文件。
  • internal/: 包含项目的内部逻辑代码。

    • service/: 包含服务的业务逻辑代码。
    • repository/: 包含数据访问层的代码。
  • pkg/: 包含项目的公共库代码。

    • logger/: 包含日志相关的代码。
    • utils/: 包含工具类代码。
  • Makefile: 包含项目的构建和运行命令。

  • go.modgo.sum: Go 模块依赖文件。

  • README.md: 项目的说明文档。

2. 项目的启动文件介绍

项目的启动文件位于 cmd/ 目录下,每个子目录对应一个微服务。以下是 demo 服务的启动文件 main.go 的介绍:

package main

import (
    "flag"
    "log"
    "os"

    "github.com/xmlking/micro-starter-kit/internal/service"
    "github.com/xmlking/micro-starter-kit/pkg/logger"
)

func main() {
    // 解析命令行参数
    var configFile string
    flag.StringVar(&configFile, "configFile", "config.dev.yaml", "配置文件路径")
    flag.Parse()

    // 初始化日志
    logger.Init()

    // 加载配置文件
    config, err := service.LoadConfig(configFile)
    if err != nil {
        log.Fatalf("加载配置文件失败: %v", err)
    }

    // 启动服务
    srv := service.NewService(config)
    if err := srv.Run(); err != nil {
        log.Fatalf("服务启动失败: %v", err)
    }
}

启动文件介绍

  • 命令行参数解析: 使用 flag 包解析命令行参数,支持通过 --configFile 指定配置文件路径。
  • 日志初始化: 初始化日志系统,使用 pkg/logger 包。
  • 配置文件加载: 加载配置文件,使用 internal/service 包中的 LoadConfig 函数。
  • 服务启动: 创建并启动服务,使用 internal/service 包中的 NewServiceRun 函数。

3. 项目的配置文件介绍

项目的配置文件位于 config/ 目录下,包含开发环境和生产环境的配置文件。以下是 config.dev.yaml 的介绍:

server:
  address: "localhost:55012"
  broker_address: "localhost:55022"

database:
  host: "127.0.0.1"
  port: 5432
  username: "user"
  password: "password"
  name: "dev_db"

logging:
  level: "debug"
  output: "stdout"

配置文件介绍

  • server: 配置服务的地址和消息代理地址。

    • address: 服务监听的地址。
    • broker_address: 消息代理的地址。
  • database: 配置数据库连接信息。

    • host: 数据库主机地址。
    • port: 数据库端口。
    • username: 数据库用户名。
    • password: 数据库密码。
    • name: 数据库名称。
  • logging: 配置日志系统。

    • level: 日志级别,如 debug, info, error 等。
    • output: 日志输出方式,如 stdout, file 等。

通过以上配置文件,可以灵活地配置服务的运行环境,满足不同场景的需求。

micro-starter-kitCloud Native GoLang Microservices - gRPC, GraphQL项目地址:https://gitcode.com/gh_mirrors/mi/micro-starter-kit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

史琼鸽Power

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值