# 前言
这是一个跟随 尚硅谷《谷粒商城》- 2020版课程学习开发的分布式电商项目,主要分为三个阶段。
- 第一阶段:分布式基础篇-全栈开发
- 快速地开发一个前后端分离的电商系统
- Spring Boot + Spring Cloud + Vue + Docker + MyBatis Plus
- 第二阶段:分布式高级-微服务架构
- 打通分布式开发中的所有技术栈,ElasticSearch + Redis缓存与Lua脚本 + 性能压测 + Nginx动静分离 负载均衡 + 多线程与异步 + 单点登录与社交登录 + RabbitMQ消息队列 + Redisson分布式锁 + Seata分布式事务 + 定时任务与分布式调度 + Sentinel 服务容错 + Sleuth&Zipkin 链路追踪
- 实现一整套的微服务整合,包括秒杀,结算,库存...
- 第三阶段:高可用集群-架构师提升
- 搭建 Kubernetes 集群,实现全流程 DevOps。
- 搭建MySQL集群,Redis集群,RabbitMQ集群,ElasticSearch集群。
![谷粒商城-微服务架构图](https://tva1.sinaimg.cn/large/007S8ZIlly1geblwvpadsj31f10u07dn.jpg)
- [x] 《分布式基础篇-全栈开发》
- [x] 《分布式高级篇-微服务架构》
- [ ] 单点登录
- [ ] 《高可用集群篇-架构师提升》
- [ ] 完善系统功能
- [ ] 完善用户 评论、收藏、物流
- [ ] `Spring Security`或`Apache Shiro`权限控制
- [ ] 增加卖家角色及相关功能
- [ ] 增加推荐子系统
- [ ] 增加数据仓库与数据挖掘
> 前两部分都已经基本结束了,剩下的就是修修补补,闲下来的时候添加点新功能,但是因为要准备秋招,所以大概率是秋招后才会进行大规模修改。
>
> 《高可用集群篇-架构师提升》因为系统配置已经跟不下动了,因为内存严重不足,考虑过在阿里云买几台服务器,但还是决定等到开学以后在学校的主机上折腾一遍,现在只进行理论学习。
>
> ---
>
> 这个项目在我本机是可以运行的,但是直接 `clone` 的话是不能直接运行的,因为很多资源我是配置在本地的,而不是配在服务器上的,需要运行的话至少需要以下几个条件。
>
> - 数据库基础表与数据库连接信息
> - `Redis`服务器
> - `ElasticSearch`服务器及相应的索引
> - `Nginx`服务器及相关页面的静态资源
> - `nacos server`用于服务注册与发现,以及服务配置。
> - 阿里云`OSS`对象存储(主要用于图片的显示,密钥配置在了`nacos server`对外不可见)
> - `OAuth2.0`(社交登录)
> - 最重要的是拥有一定的基础,可以自己调整运行过程中的各种问题。
# 分布式基础篇-全栈开发
## 基础环境
### CentOS虚拟机
- 购买云服务器
- 本地虚拟机
### Docker环境
- 安装 MySQL
```shell
$ docker pull mysql:5.7
$ docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
$ docker ps
```
- 配置MySQL编码
```
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
```
```shell
$ docker restart mysql
$ docker exec -it mysql /bin/bash
```
- 安装 Redis
```shell
$ docker pull redis
$ mkdir -p /mydata/redis/conf
$ touch /mydata/redis/conf/redis.conf
$ docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
$ docker ps
$ docker run --restart=always # 随机自启
$ docker update --restart=always <CONTAINER ID> # 随机自启
$ docker exec -it redis redis-cli
```
- 增加 Redis 持久化
```shell
$ vi /mydata/redis/conf/redis.conf
# appendonly yes
$ docker restart redis
```
- 免费的 mac/windows redis 客户端
[AnotherRedisDesktopManager - GitHub](https://github.com/qishibo/AnotherRedisDesktopManager/releases)
## 开发环境
### 微服务模块
- 项目基础模块: `Product/Ware/Member/Coupon/Order`
- 公共依赖: `commons`
- 后台管理模块: `renren-fast`
### 初始化数据库
### 逆向工程
[人人开源主页 - 码云](https://gitee.com/renrenio/)
[人人开源后台管理 - 码云](https://gitee.com/renrenio/renren-fast)
[人人开源前台Vue - 码云](https://gitee.com/renrenio/renren-fast-vue)
[人人开源代码生成器 - 码云](https://gitee.com/renrenio/renren-generator)
### Maven
```xml
<!-- 阿里云镜像 -->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus Aliyun</name>
<url>https://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云Google仓库</name>
<url>https://maven.aliyun.com/repository/google</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云Apache仓库</name>
<url>https://maven.aliyun.com/repository/apache-snapshots</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云Spring仓库</name>
<url>https://maven.aliyun.com/repository/spring</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云Spring插件仓库</name>
<url>https://maven.aliyun.com/repository/spring-plugin</url>
</mirror>
```
```xml
<!-- 编译环境 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
```
### 修改NPM源
```shell
$ npm config set registry http://registry.npm.taobao.org/
$ npm config get registry
$ npm config set registry https://registry.npmjs.org/
```
### 视频16出现的坑 node-sass
```
Module build failed: Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (72)
```
解决办法:
```shell
$ npm uninstall node-sass
$ npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
$ npm run dev # 此时可成功
```
## 生成基本CRUD代码
利用逆向工程,运行`renren-generator`项目连接数据库后迅速生成所有后端基础增删改查代码以及前段`Vue`页面。
## Spring Cloud Alibaba
- [Spring Cloud Alibaba - GitHub](https://github.com/alibaba/spring-cloud-alibaba)
- `Spring Cloud Alibaba Nacos`: 注册中心(服务发现/注册),配置中心(动态配置管理)
- `Spring Cloud Ribbon`: 负载均衡
- `Spring Cloud OpenFeign`: 声明式 `HTTP` 客户端,远程服务调用。
- `Spring Cloud Alibaba Sentinel`: 服务容错(限流、降级、熔断)
- `Spring Cloud Sleuth`: 调用链监控
- `Spring Cloud Alibaba Seata`: 分布式事务解决方案
```xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```
### Nacos服务注册与发现
```xml
<dependency>
<groupId>com.alibaba.cloud</grou
没有合适的资源?快使用搜索试试~ 我知道了~
2020谷粒商城源码,真实有效!!
共939个文件
java:629个
xml:84个
js:38个
1星 需积分: 5 126 下载量 158 浏览量
2020-06-22
15:56:04
上传
评论 2
收藏 16.18MB ZIP 举报
温馨提示
技术涵盖:微服务架构+分布式+全栈+集群+部署+自动化运维+可视化CICD,对标阿里P6/P7,冲击40-60w年薪。 项目由业务集群系统+后台管理系统构成,打通了分布式开发及全栈开发技能,包含前后分离全栈开发、Restful接口、数据校验、网关、注册发现、配置中心、熔断、限流、降级、链路追踪、性能监控、压力测试、系统预警、集群部署、持续集成、持续部署
资源详情
资源评论
资源推荐
收起资源包目录
2020谷粒商城源码,真实有效!! (939个子文件)
file.conf 3KB
registry.conf 1KB
config 307B
bootstrap.min.css 118KB
AdminLTE.min.css 88KB
screen.css 43KB
print.css 41KB
all-skins.min.css 40KB
font-awesome.min.css 30KB
swagger-ui.css 26KB
ui.jqgrid-bootstrap.css 19KB
ui.jqgrid.css 17KB
layer.css 14KB
layer.css 5KB
style.css 3KB
style.css 3KB
main.css 1KB
reset.css 773B
ui.jqgrid-bootstrap-ui.css 692B
typography.css 0B
description 73B
Dockerfile 171B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
Dockerfile 138B
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
exclude 240B
throbber.gif 9KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
expand.gif 73B
collapse.gif 69B
.gitignore 665B
.gitignore 316B
.gitignore 308B
HEAD 186B
HEAD 186B
HEAD 32B
HEAD 23B
register.html 504KB
list.html 92KB
item.html 64KB
detail.html 60KB
confirm.html 38KB
list.html 35KB
index.html 30KB
cartList.html 29KB
orderList.html 29KB
login.html 6KB
pay.html 6KB
index.html 5KB
success.html 4KB
index.html 4KB
success.html 3KB
oauth2-redirect.html 2KB
generator.html 1KB
main.html 1KB
o2c.html 499B
favicon.ico 5KB
favicon.ico 4KB
favicon.ico 4KB
pack-7be4648f8b5e665c7f25b31c51a9cbaec1554d0f.idx 104KB
index 135KB
HTMLFilter.java 21KB
HTMLFilter.java 21KB
OrderServiceImpl.java 19KB
CategoryServiceImpl.java 13KB
SpuInfoServiceImpl.java 13KB
MallSearchServiceImpl.java 12KB
SeckillServiceImpl.java 12KB
HttpUtils.java 10KB
AttrServiceImpl.java 10KB
HttpUtils.java 10KB
WareSkuServiceImpl.java 10KB
GenUtils.java 9KB
CartServiceImpl.java 7KB
PurchaseServiceImpl.java 6KB
MemberServiceImpl.java 6KB
SkuInfoServiceImpl.java 6KB
AlipayTemplate.java 6KB
IndexController.java 6KB
DataSourceProperties.java 5KB
ScheduleUtils.java 5KB
DateUtils.java 5KB
SysMenuController.java 5KB
SysUserServiceImpl.java 4KB
共 939 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
猪猪侠blogs
- 粉丝: 29
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
- FirstFilterOrderCompare
- Screenshot_2024-03-28-19-17-25-020_com.ss.android.lark.jpg
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1