Go-Zero-Mall 开源项目教程
go-zero-mallgo-zero实战:让微服务Go起来项目地址:https://gitcode.com/gh_mirrors/go/go-zero-mall
1. 项目的目录结构及介绍
Go-Zero-Mall 项目的目录结构如下:
go-zero-mall/
├── api
│ ├── cart
│ ├── order
│ ├── product
│ └── user
├── cmd
│ └── mall
├── config
├── db
├── doc
├── internal
│ ├── config
│ ├── handler
│ ├── logic
│ ├── svc
│ └── types
├── scripts
└── test
目录结构介绍
- api: 存放各个服务的API定义文件。
- cmd: 存放项目的入口文件。
- config: 存放项目的配置文件。
- db: 存放数据库相关的文件。
- doc: 存放项目的文档文件。
- internal: 存放项目的内部逻辑文件。
- config: 配置文件。
- handler: 处理请求的文件。
- logic: 业务逻辑文件。
- svc: 服务上下文文件。
- types: 类型定义文件。
- scripts: 存放脚本文件。
- test: 存放测试文件。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/mall
目录下,主要文件为 main.go
。
main.go 文件介绍
main.go
文件是项目的入口文件,负责初始化配置、启动服务等操作。以下是 main.go
文件的主要内容:
package main
import (
"flag"
"fmt"
"go-zero-mall/internal/config"
"go-zero-mall/internal/handler"
"go-zero-mall/internal/svc"
"github.com/zeromicro/go-zero/core/conf"
"github.com/zeromicro/go-zero/rest"
)
var configFile = flag.String("f", "etc/mall-api.yaml", "the config file")
func main() {
flag.Parse()
var c config.Config
conf.MustLoad(*configFile, &c)
ctx := svc.NewServiceContext(c)
server := rest.MustNewServer(c.RestConf)
defer server.Stop()
handler.RegisterHandlers(server, ctx)
fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
server.Start()
}
启动文件功能介绍
- 加载配置文件: 通过
conf.MustLoad
方法加载配置文件。 - 初始化服务上下文: 通过
svc.NewServiceContext
方法初始化服务上下文。 - 创建并启动服务器: 通过
rest.MustNewServer
方法创建服务器,并调用server.Start
方法启动服务器。
3. 项目的配置文件介绍
项目的配置文件位于 config
目录下,主要文件为 mall-api.yaml
。
mall-api.yaml 文件介绍
mall-api.yaml
文件包含了项目的各种配置信息,如服务端口、数据库连接等。以下是 mall-api.yaml
文件的主要内容:
Name: mall-api
Host: 0.0.0.0
Port: 8888
Log:
Mode: file
Path: logs
Database:
Type: mysql
Host: 127.0.0.1
Port: 3306
User: root
Password: password
DBName: mall
Cache:
Type: redis
Host: 127.0.0.1
Port: 6379
Password:
DB: 0
配置文件功能介绍
- 服务配置: 包括服务名称、监听地址和端口。
- 日志配置: 包括日志模式和日志路径。
- 数据库配置: 包括数据库类型、主机地址、端口、用户名、密码和数据库名称。
- 缓存配置: 包括缓存类型、主机地址、端口、密码和数据库编号。
通过以上配置文件,项目可以灵活地配置各种运行参数,以适应不同的
go-zero-mallgo-zero实战:让微服务Go起来项目地址:https://gitcode.com/gh_mirrors/go/go-zero-mall