# 微服务电商项目
**Repository Path**: YuGeSpace/gulimall
## Basic Information
- **Project Name**: 微服务电商项目
- **Description**: 谷粒商城,微服务电商项目。
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2021-07-12
- **Last Updated**: 2022-09-29
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 微服务电商项目-进度(高级篇)
#### 架构介绍
+ 软件架构说明
+ 谷粒商城,微服务+分布式+全栈+集群+部署+自动化运维+可视化CICD
+ 涉及技术
+ JDK1.8、maven、nginx、spring、springCloud、springBoot、springAlibaba、mybatis-plus、
+ mysql、redis、rabbitMQ、elasticSearch、docker、kuberneters、jenkins、oss
+ 介绍
+ https://thoughts.teambition.com/share/60af4091c9550c00468b8842#title=项目前言
#### 环境信息
+ 虚拟机环境(二选一)
+ VMware
+ VirtualBox+Vagrant
+ docker环境(先安装docker,以下为项目所需在docker下的容器镜像)
+ mysql-5.7
+ redis-latest(latest:为最新版本)
+ elasticsearch:7.4.2(存储OR检索)/kibana:7.4.2(可视化)版本必须保证统一
+ nginx-1.10
+ 前端
+ node
+ npm 安装淘宝镜像
+ 集群服务
+ nacos
+ 云存储服务
+ oss
#### 项目结构
| 批次 | 项目编码 | 项目名称 | 描述 |
| 0 | gulimall-common | 公共组件 | 每一个微服务公共的依赖,bean,工具类等 |
| gulimall-gateway | 网关服务 | 每一个微服务前端路径跳转必须先到网关,经由网关根据配置信息转发具体微服务 |
| gulimall-third-party | 第三方服务 | 第三方服务提供者,OSS,短信等 |
| gulimall-search | 搜索服务 | Elasticsearch搜索文档 |
| gulimall-auth-server | 认证服务 | 社交登录、Oauth2.0、单点登录 |
| 1 | gulimall-member | 用户服务 | - |
| gulimall-order | 订单服务 | - |
| gulimall-product | 商品服务 | - |
| gulimall-ware | 存储服务 | - |
| gulimall-coupon | 优惠券服务 | - |
| gulimall-cart | 购物车服务 | - |
| 2 | renren-fast | 人人开源后端 | 里面很多工具类和代码后期所需要 |
| renren-fast-vue | 人人开源前端 | 后台管理前端整套代码信息 |
| renren-generator | 人人开源逆向工程 | 用于生成entity、xml、dao、service、html、js、sql |
| 3 | nacos | nacos服务 | 集群服务,直接启动startup.cmd,账号密码:nacos |
#### 配置说明
+ 数据库信息
+ 主项目sql文件夹
+ 云存储服务
+ oss信息配置参考gulimall-third-party
+ C盘host配置
+ nginx反向代理
+ 192.168.xxx.xxx gulimall.com
+ 192.168.xxx.xxx search.gulimall.com
+ 192.168.xxx.xxx item.gulimall.com
+ 192.168.xxx.xxx auth.gulimall.com
+ 192.168.xxx.xxx cart.gulimall.com
#### 相关网站
+ 访问链接: https://thoughts.teambition.com/share/60af4057f64d5f0046ddbded#title=网址汇总
#### 开发流程
+ JDK1.8
+ 首先安装Java所需环境,JDK1.8,如果本地没有1.8可自行下载安装双JDK环境切换使用,可不配置环境变量
+ Maven
+ 下载maven并修改maven远程仓库,可修改为Alibaba远程仓库
+ Git
+ 下载安装Git客户端工具
+ 虚拟机+Docker
+ 教程: https://thoughts.teambition.com/share/60af456a12e73d0046be777b#title=1.Linux环境搭建&Vagrant使用
+ 安装虚拟机并安装docker容器
+ 在docker容器中安装mysql和redis数据库信息
+ 项目初始创建+数据库初始化
+ 依次创建【项目结构】表格批次1的module
+ 初始化**主项目sql文件夹**,创建对应数据库
+ 搭建前台框架+测试product项目
+ 从码云上面下载人人开源项目
+ 搭建流程: https://thoughts.teambition.com/share/60b18cb189cdfe00460aec83#title=4.前端设置
+ 其他模块生成逆向工程
+ 照着product项目操作就好了
+ yml文件模块端口号设置,coupon:7000/member:8000/order:9000/product:10000/ware:11000
+ SpringCloudAlibaba
+ https://thoughts.teambition.com/share/60b1b373eee3cb0046f421f5#title=5.SpringCloudAlibaba
+ Terminal: 切换到nacos/bin/目录 输入startup.cmd 启动项目
+ 前端练习此处略过
+ 使用feign远程调用
+ 检查自己的微服务的pom.xml是否导入spring-cloud-starter-openfeign
+ 在member的主类上面增加@EnableFeignClients(basePackages = "com.example.gulimall.member.feign")开启feign功能
+ member增加feign包,增加声明式远程调用接口:CouponFeignService
+ nacos
+ 本地增加nacos服务注册&发现&管理具体参考SpringCloudAlibaba文档,
+ nacos配置比较简单,可根据bootstrap.properties的内容自己配置
+ 网关
+ 具体参考springCloudGateway官网资料
+ 跨域解决方案 com.example.gulimall.config.CorsConfig
+ OSS云存储
+ 阿里云官网开通OSS-创建Bucket-创建RAM子账号-授权子账号上传访问权限
+ ElasticSearch文档搜索
+ 搭建教程 https://thoughts.teambition.com/share/60c1f29891b3120046f29685#title=ElasticSearch
+ nginx 反向代理,动静分离
+ 性能压测
+ 接入分布式缓存Redis、Redison
+ 线程池+JDK1.8异步编排方法
+ 认证服务
+ 购物车业务
+ 使用ThreadLocal做临时购物车操作
#### 部署启动
+ 步骤
+ 启动nacos包下面startup.cmd
+ 启动docker的mysql数据库
+ 启动renren-fast-vue前端
+ 启动各个微服务,正常访问
#### 代码扫描
+ Alibaba Code Guidelines 扫描修复
+ Blocker:最严重的问题,要求是必须修复,不允许带着Blocker问题的代码上线,跟绩效挂钩。
+ Critical:是比较严重的问题,要求是必须修复,不允许带着Critical问题的代码上线,跟绩效挂钩
+ Major:问题,可以不修复,也可以修复。主要是看项目的排期和进度,如果说进度不是特别紧张的话,
建议全部修复。如果说项目进度很紧张的话,Major问题可以先放着,下次有时间了再修复。