# electronic_commerce **Repository Path**: chen-tianshou/electronic_commerce ## Basic Information - **Project Name**: electronic_commerce - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-16 - **Last Updated**: 2026-02-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电子商务系统 一个基于Go语言开发的分布式电子商务系统,采用微服务架构,包含用户、商品、订单、活动等核心模块。 ## 技术栈 ### 后端技术 - **语言**: Go 1.25.4 - **Web框架**: Gin - **RPC框架**: gRPC - **服务注册与发现**: Nacos、Consul - **配置中心**: Viper、Nacos - **数据库**: MySQL、Redis - **消息队列**: RabbitMQ - **缓存**: Redis - **日志**: Zap + Lumberjack - **API文档**: Swagger - **认证**: JWT - **支付**: 支付宝SDK ### 开发工具 - **IDEA**: GoLand - **版本控制**: Git - **容器化**: Docker ## 项目架构 系统采用微服务架构,主要包含以下服务: 1. **API网关** (`internal/api-gateway`) - 统一入口管理 - 请求路由 - 身份验证 - 限流熔断 - Swagger文档 2. **用户服务** (`internal/server-user`) - 用户注册登录 - 用户信息管理 - 权限控制 3. **商品服务** (`internal/server-goods`) - 商品信息管理 - 商品分类 - 商品库存 4. **订单服务** (`internal/server-order`) - 订单创建 - 订单管理 - 订单支付 5. **活动服务** (`internal/server-activity`) - 促销活动管理 - 优惠券管理 6. **会员服务** (`internal/server-member`) - 会员等级 - 会员积分 - 会员权益 ## 目录结构 ``` electronic_commerce/ ├── api/ # API定义目录 │ ├── activity/ # 活动API │ ├── goods/ # 商品API │ ├── member/ # 会员API │ ├── order/ # 订单API │ └── user/ # 用户API ├── build/ # 构建相关文件 │ └── Dockerfile # Docker构建文件 ├── configs/ # 配置文件目录 │ └── config.yaml # 主配置文件 ├── internal/ # 内部代码 │ ├── api-gateway/ # API网关 │ ├── pkg/ # 公共包 │ │ ├── config/ # 配置定义 │ │ ├── global/ # 全局变量 │ │ ├── initialize/ # 初始化组件 │ │ ├── logger/ # 日志组件 │ │ ├── model/ # 数据模型 │ │ └── util/ # 工具函数 │ ├── proto/ # Protobuf定义 │ ├── server-activity/ # 活动服务 │ ├── server-goods/ # 商品服务 │ ├── server-member/ # 会员服务 │ ├── server-order/ # 订单服务 │ └── server-user/ # 用户服务 ├── scripts/ # 脚本文件 ├── .gitignore # Git忽略文件 ├── go.mod # Go模块定义 ├── go.sum # Go依赖校验 ├── Makefile # 构建脚本 └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - Go 1.25.4+ - MySQL 8.0+ - Redis 6.0+ - RabbitMQ 3.8+ - Nacos 2.0+ ### 配置文件 在`configs/config.yaml`中配置数据库、Redis、消息队列等服务信息: ```yaml # 示例配置 server: port: 8081 mode: debug database: mysql: host: localhost port: 3306 user: root password: 123456 dbname: ecommerce redis: host: localhost port: 6379 password: "" db: 0 nacos: server_addr: localhost:8848 namespace: "" group: DEFAULT_GROUP ``` ### 运行方式 #### 1. 直接运行 ```bash # 启动API网关 go run ./internal/api-gateway # 启动用户服务 go run ./internal/server-user # 启动商品服务 go run ./internal/server-goods # 启动订单服务 go run ./internal/server-order # 启动活动服务 go run ./internal/server-activity # 启动会员服务 go run ./internal/server-member ``` #### 2. 使用Makefile ```bash # 启动所有服务 make run-all # 启动API网关 make run-api-gateway # 启动用户服务 make run-user-service ``` #### 3. 使用Docker ```bash # 构建镜像 docker build -t ecommerce . # 运行容器 docker run -p 8081:8081 ecommerce ``` ## API文档 系统使用Swagger生成API文档,启动API网关后可访问: ``` http://localhost:8081/swagger/index.html ``` ## 日志配置 日志统一存储在`logs`目录下,按服务名称命名日志文件(如`user.log`、`goods.log`)。 日志配置包括: - 单个日志文件最大10MB - 保留7个备份文件 - 日志文件保存7天 - 自动压缩旧日志 - 同时输出到控制台和文件 ## 部署方式 ### Docker Compose ```yaml # docker-compose.yml示例 version: '3' services: api-gateway: build: . ports: - "8081:8081" depends_on: - mysql - redis - nacos environment: - NACOS_ADDR=nacos:8848 mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=123456 - MYSQL_DATABASE=ecommerce redis: image: redis:6.0 nacos: image: nacos/nacos-server:2.0.3 environment: - MODE=standalone ``` ### Kubernetes 待完善... ## 贡献指南 1. Fork仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开Pull Request ## 许可证 MIT License - 查看LICENSE文件了解详情。