# gulimall
**Repository Path**: pronting/gulimall
## Basic Information
- **Project Name**: gulimall
- **Description**: gulimall是用JAVA开发的分布式架构,支持大并发的大型电商项目,采用B2C模型开发。旨在为中小企业提供快速搭建电商平台的解决方案。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 14
- **Forks**: 1
- **Created**: 2023-05-15
- **Last Updated**: 2023-09-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: SpringCloud, Jenkins, Redis, Nginx
## README
> 转载请表明出处 https://gitee.com/pronting/gulimall
[项目笔记](https://imminent-height-993.notion.site/6a5b0733b2ea46e5a8af7c79bd336b7c?pvs=4)
[接口文档](https://easydoc.net/s/78237135/ZUqEdvA4/hKJTcbfd)
[后台系统演示地址](./readme/fontDemonstration.md)
[前台系统演示地址]()
**制作不易,给个star!**
## 介绍
微服务+分布式+全栈+集群+部署+自动化运维+可视化CICD 搭建的大型购物平台
## 技术栈
* 后端框架: Spring Boot
* 微服务框架: Spring Cloud
* 数据库:MySQL
* 缓存:Redis
* 消息中间件:RabbitMQ
* 前端框架:Vue
* 检索引擎:ElasticSearch
* 各种中间件等
## 软件架构

## 快速开始
1. 克隆代码库 `https://gitee.com/pronting/gulimall.git`
2. 生成ide配置: `mvn idea:idea或mvn eclipse:eclipse` 并导入对应的ide进行开发,IDE安装**lombok**插件(很重要,否则IDE会显示编译报错)
3. 创建数据库与表: 请运行db问价下的sql文件创建表结构
4. 如果是本地部署,请自行购买内网穿透隧道,然后修改nginx 配置文件
5. 如果是部署到服务器,请参照文档
[部署服务器教程](https://easydoc.net/s/78237135/ZUqEdvA4/hKJTcbfd)
## 使用说明
项目说明如下
| 模块 | 作用 | 默认访问域名/地址 |
|:---------------------|:-----------------|----------------------------------------|
| gulimall-auth-server | 用户权限校验及认证 | auth.gulimall.com |
| gulimall-cart | 购物车服务 | cart.gulimall.com |
| gulimall-common | 所有服务依赖的公共模块 | / |
| gulimall-gateway | 项目网关 | / |
| gulimall-member | 会员及用户服务 | member.gulimall.com |
| gulimall-order | 订单业务 | order.gulimall.com |
| gulimall-product | 商城商品服务 | product.gulimall.com,item.gulimall.com |
| gulimall-search | 前台商城系统检索服务 | search.gulimall.com |
| gulimall-seckill | 商城系统秒杀服务 | seckill.gulimall.com |
| gulimall-third-party | 第三方服务,包含oss,短信服务 | / |
| gulimall-ware | 仓储服务 | ware.gulimall.com |
| gulimall-coupon | 商城的优惠系统,包含各种满减折扣 | / |
| renren-fast | 谷粒商城后台管理系统 | / |
| renren-generator | 基本代码生成器 | / |
## 开发环境准备
### 开发工具下载:
| 工具 | 说明 | 下载地址 |
|:---------------------|:-----------------|--------------------------------------|
| RedisDesktop | redis客户端连接工具 | https://redisdesktop.com/download |
| SwitchHosts | 本地host管理 | https://oldj.github.io/SwitchHosts |
| X-shell | Linux远程连接工具 | http://www.netsarang.com/download/software.html |
| PowerDesigner | 数据库设计工具 | http://powerdesigner.de |
| Postman | API接口调试工具 | https://www.postman.com |
| Jmeter | 性能压测工具 | https://jmeter.apache.org |
### 环境准备:
* JDK 1.8
* Redis /
* MySQL 5.7
* ElasticSearch 7.6.2
* Kibana 7.6.2
* RabbitMQ 3.8.5
* Nginx 1.1.6
* Sentinel 1.6.3
### 在本机的host文件添加如下内容
```
127.0.0.1 auth.gulimall.com
127.0.0.1 gulimall.com
127.0.0.1 search.gulimall.com
127.0.0.1 item.gulimall.com
127.0.0.1 cart.gulimall.com
127.0.0.1 order.gulimall.com
127.0.0.1 member.gulimall.com
127.0.0.1 seckill.gulimall.com
```
### 修改网关Nginx配置
前往nginx的config文件夹
```editorconfig
1、在nginx.conf中添加负载均衡的配置
upstream gulimall{
server 这里填写gulimall-gateway地址;
}
2、gulimall.conf中添加如下配置
server {
# 监听以下域名地址的80端口
listen 80;
server_name gulimall.com *.gulimall.com 这里还要填写内网穿透服务商域名
#配置静态资源分离
location /static/ {
root /usr/share/nginx/html;
}
#支付异步回调的一个配置
location /payed/ {
proxy_set_header Host order.gulimall.com; #不让请求头丢失
proxy_pass http://gulimall;
}
location / {
proxy_set_header Host $host; #不让请求头丢失
proxy_pass http://gulimall;
}
```
1. 请启动Nginx,Nacos, Sentinel, Redis, ElasticSearch, MySQL, RabbitMQ服务,保证系统各种服务能够准确无误的运行
2. 前台系统请启动除renren-fast/renren-generator 的所有项目,后台系统将多了将renren-fast启动
## 参与贡献
[*Pronting*](https://gitee.com/Pronting)
## 特技
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)