Skip to content
/ Gomall Public

Gomall 是一个基于 Go 语言开发的抖音商城项目,使用 Kitex 和 Hertz 框架构建。项目采用微服务架构,涵盖了多个核心功能模块。项目根据字节跳动青训营(2025春)官方要求和模板制作。

License

Notifications You must be signed in to change notification settings

weeadd/Gomall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gomall - 抖音商城

GitHub Static Badge Go Version GitHub Repo stars

✨ 简介

Gomall 是一个基于 Go 语言开发的抖音商城项目,使用 Kitex 和 Hertz 框架构建。项目采用微服务架构,涵盖了用户管理、商品展示、购物车、订单处理、支付等多个核心功能模块。本项目根据字节跳动青训营(2025春)官方要求和模板制作。

🛠 技术栈

🗄️ 数据库

本项目使用 MySQL 作为主要的关系型数据库,用于存储用户信息、商品信息、订单信息等结构化数据。

🚀 运行

在执行后续步骤之前,请确保您已配置好以下环境:

  • Go ≥ 1.24
  • MySQL ≥ 8.0
  • Docker

1. 克隆项目

首先,克隆本仓库到本地:

git clone https://github.com/weeadd/Gomall.git
cd gomall

2. 配置数据库

每个微服务都支持通过 .env 文件配置 MySQL 连接信息。在每个微服务的目录下(如 app/product),创建 .env 文件并填写以下内容:

MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_HOST=your_host_ip
MYSQL_DATABASE=database_name

请根据您的 MySQL 配置修改上述值。

3. 启动依赖服务

使用 Docker 快速启动 Consul(服务发现与配置管理)和 MySQL:

docker-compose -f docker/docker-compose.yaml up -d

4. 启动微服务

在项目根目录下运行以下命令,启动所有微服务:

make run

或者,您可以进入每个微服务目录(如 app/product),手动运行:

go run main.go

5. 访问服务

  • API 服务默认运行在 8080 端口,您可以通过 http://localhost:8080 结合路由访问。(如 获取商品信息 localhost:8080/product/get?id=1
  • 使用 Prometheus 和 Grafana 监控服务状态(默认端口:9090 和 3000)。

通过以上步骤,您可以快速启动并体验 Gomall 项目。如果有任何问题,请参考项目的 Issues 或提交新的问题。

⚙️ 架构设计

Gomall 采用微服务架构,基于 Kitex 和 Hertz 框架构建,整体架构分为三层:

1. API 网关层

  • 使用 Hertz 作为 HTTP 服务器,负责接收用户请求并进行路由转发。
  • 通过 RPC 调用后端微服务,完成业务逻辑处理。
  • 提供统一的 API 入口,支持用户认证、请求限流等功能。

2. 微服务层

  • 核心业务拆分为多个独立的微服务,每个服务专注于单一职责:
    • User:用户管理(注册、登录、信息维护)。
    • Auth:身份认证与权限管理(JWT 鉴权)。
    • Product:商品管理(商品展示、库存管理)。
    • Cart:购物车管理(商品添加、删除、修改)。
    • Order:订单管理(订单创建、状态更新)。
    • Payment:支付服务(支付流程处理)。
    • Checkout:结算服务(整合订单、支付、库存等逻辑)。
  • 微服务之间通过 Kitex 进行 RPC 通信,保证高性能和低延迟。

3. 数据存储与基础设施层

  • MySQL:存储用户、商品、订单等核心业务数据。
  • Consul:提供服务注册与发现、配置管理功能,支持动态扩展。
  • Prometheus + Grafana:监控系统性能,实时采集并展示服务指标(如请求延迟、错误率等)。
  • Docker:容器化部署,确保环境一致性。

架构特点

  • 高可用性:通过 Consul 实现服务动态注册与发现,支持弹性扩展。
  • 可观测性:集成 Prometheus 监控系统,实时跟踪服务状态。
  • 松耦合:微服务独立部署,便于维护和扩展。

该架构设计确保了 Gomall 的高性能、可扩展性和易维护性,能够灵活应对业务需求的变化。架构方案来源于字节跳动CloudWeGo (https://github.com/cloudwego) 官方biz-demo,项目团队根据实际需求和工期进行了部分裁剪和调整,未来将进一步加入更多组件与功能。

🤝 团队成员

本项目由以下开发者共同完成(顺序不分先后):

✍️ 写在最后

项目制作不易,如果它对你有帮助的话,请务必给作者点一个免费的⭐,万分感谢!🙏🙏🙏

About

Gomall 是一个基于 Go 语言开发的抖音商城项目,使用 Kitex 和 Hertz 框架构建。项目采用微服务架构,涵盖了多个核心功能模块。项目根据字节跳动青训营(2025春)官方要求和模板制作。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •