# go-microservices-shopping **Repository Path**: xdx_coder_dev/go-microservices ## Basic Information - **Project Name**: go-microservices-shopping - **Description**: 该项目是对某学生鲜项目的学习的记录,探索go是如何从一个单体应用拆分成多个微服务,以及如何服务之间如何通过gprc互相调用、注册,发现,配置中心如何存储配置,并更新到本地服务,接口限流熔断,链路追踪等等。支付功能并未完成,仅做记录。 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-27 - **Last Updated**: 2025-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: ElasticSearch, nacos, consul, jaeger, rocketmq ## README ```markdown # Go微服务商城系统 ## 介绍 这是一个基于Go语言开发的微服务架构电商平台,包含商品、订单、用户、库存、文件存储等核心模块。系统采用gRPC进行服务间通信,使用Gin作为Web框架,并整合了Consul服务发现、OpenTracing分布式追踪等功能。 ## 软件架构 系统由多个独立服务组成: - **goods-web**: 商品服务API接口 - **order-web**: 订单服务API接口 - **user-web**: 用户服务API接口 - **userop-web**: 用户操作服务(收藏、地址、留言) - **minio-web**: 文件上传服务 - **goods-srv**: 商品服务 - **order-srv**: 订单服务 - **user-srv**: 用户服务 - **userop-srv**: 用户操作服务 - **inventory-srv**: 库存服务 各服务之间通过gRPC进行通信,使用Consul进行服务注册与发现,支持分布式部署。 ## 安装教程 1. 安装Go环境(建议1.18+) 2. 安装Docker和Docker Compose 3. 安装并启动MySQL、Redis、Consul、RocketMQ、MinIO等依赖服务 4. 配置各服务的配置文件(config/config.go) 5. 启动各服务: ```bash go run main.go ``` ## 使用说明 ### 商品服务 (goods-web) 提供以下API接口: - 商品管理:`List`, `New`, `Detail`, `Delete`, `Stocks`, `UpdateStatus`, `Update` - 分类管理:`List`, `Detail`, `New`, `Delete`, `Update` - 品牌管理:`BrandList`, `NewBrand`, `DeleteBrand`, `UpdateBrand`, `GetCategoryBrandList`, `CategoryBrandList`, `NewCategoryBrand`, `UpdateCategoryBrand`, `DeleteCategoryBrand` - 轮播图管理:`List`, `New`, `Delete`, `Update` ### 订单服务 (order-web) 提供以下API接口: - 订单管理:`List`, `New`, `Detail` - 支付管理:`List`, `New`, `Detail` - 购物车管理:`List`, `New`, `Detail`, `Delete`, `Update` ### 用户服务 (user-web) 提供以下API接口: - 用户管理:`GetUserList`, `PassWordLogin`, `Register`, `GetUserByMobile`, `GetUserById`, `CreateUser`, `UpdateUser` - 短信验证码:`GenerateSmsCode`, `SendSMS` - 验证码中间件:`ValidateMobile` ### 用户操作服务 (userop-web) 提供以下API接口: - 地址管理:`List`, `New`, `Delete`, `Update` - 留言管理:`List`, `New` - 收藏管理:`List`, `New`, `Delete`, `Detail` ### 文件服务 (minio-web) 提供以下功能: - 文件上传:`UploadFile` ## 参与贡献 1. Fork仓库 2. 创建feature分支 3. 提交代码 4. 创建Pull Request ## 特技 - 基于Consul的服务注册与发现 - 使用OpenTracing实现分布式追踪 - 基于JWT的用户认证 - 使用GORM进行数据库操作 - 基于ProtoBuf的gRPC通信 - 支持MinIO文件存储 - 使用Sentinel进行流量控制 - 支持分布式事务(RocketMQ) ```