文章目录
-
-
- 1. 项目基本介绍
- 2. 项目技术
- 3. [项目业务](https://easydoc.xyz/s/78237135/ZUqEdvA4/hKJTcbfd)
- 4. 集群
-
1. 项目基本介绍
1.1 微服务划分
核心
-
商品:
序号 Entity 描述 1 CategoryEntity 三级分类表 2 BrandEntity 品牌表 3 CategoryBrandRelationEntity 1和2的关联表,多对多关系 4 SpuInfoEntity spu信息表,不显示属性信息 5 SpuImagesEntity spu对应的多张商品图片 6 SpuInfoDescEntity spu的商品详情长图 7 SkuInfoEntity ku具体信息,不显示属性信息 8 SkuImagesEntity sku对应的多张商品图片 7 AttrEntity 属性表,如:手机机身颜色 10 AttrGroupEntity 属性分组表,如:手机中主体,基本信息… 11 AttrAttrgroupRelationEntity 属性表和属性分组表的关联表 12 ProductAttrValueEntity spu的基本属性值表,不同sku共同属性,如入网型号… 13 SkuSaleAttrValueEntity sku销售属性表,如机身颜色,+12=sku全部属性
-
库存
序号 Entity 描述 1 WareInfoEntity 仓库信息,如:上海,北京 2 WareSkuEntity sku库存表 3 PurchaseDetailEntity 采购单详情,如:7号sku采购100到2号仓库 4 PurchaseEntity 采购单,把采购单详情合并到采购单,每个人领多个采购单 5 WareOrderTaskEntity 包含订单的唯一标识order_sn 6 WareOrderTaskDetailEntity 订单对应的订单详情,如7号sku购买2件 -
优惠券
序号 Entity 描述 1 SpuBoundsEntity 购买spu的成长积分,购物积分 2 MemberPriceEntity 上级sku不同会员等级不同价格 3 SkuLadderEntity 商品sku阶梯价格表,满几件打几折 4 SkuFullReductionEntity 商品sku满减信息表,满多少减多少 -
会员
序号 Entity 描述 1 MemberEntity 会员表(第三方登录会返回唯一uid) 2 MemberLevelEntity 会员等级表,默认普通会员 3 MemberReceiveAddressEntity 会员收获地址表 -
认证登录
-
第三方工具
Oss存储
短信
-
检索
ElasticSearch,商品上架时存储到Es索引,页面从Es取数据
-
购物车
存储在redis
-
订单
序号 Entity 描述 1 OrderEntity 订单表 2 OrderItemEntity 订单项表 3 PaymentInfoEntity 支付信息表,关联支付宝,对应流水号 -
秒杀
序号 Entity 描述 1 SeckillSessionEntity 秒杀场次表,开始结束时间 2 SeckillSkuRelationEntity 秒杀商品关联表(关联场次),秒杀价
外围
-
common
-
网关
Nginx+SpringCloud Gateway
-
renren-fast
和前端renren-fast-vue前端,构成基本商城管理系统
-
renren-generate
逆向工程自动生成CRUD
1.2 容器
docker参数
虚拟化容器技术,每一种容器都是一个完整的运行环境,容器之间互相隔离。Docker守护进程运行在主机上, 然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器。 容器,是一个运行时环境。
序号 | 命令 | 含义 |
---|---|---|
1 | -p | 端口映射,如:3306:3306 对应 宿主机端口:虚拟机端口 |
2 | –name | 起名字 |
2 | -v | 文件挂载,如:/mydata/mysql/conf/:/etc/mysql/ |
3 | -e | 如:ES_JAVA_OPTS="-Xms300m -Xmx300m",MYSQL_ROOT_PASSWORD=123456 |
4 | -d | 后台运行 |
常用指令
#awk是文本分析工具,tail -n +2 取从第二行开始到结尾
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker stop $(docker ps -a |grep elasticsearch-node | awk '{ print $1}')
docker exec -it redis /bin/bash
docker update 序列号 --restart=always
docker logs name
#显示网络状态 查看端口占用
netstat -ano
#lsof(list open files)是一个列出当前系统打开文件的工具 -i用以显示符合条件的进程情况 查看端口占用
lsof -i:port
项目用到的容器
- mysql
- redis
- nginx
- elasticsearch
- kibana
- rabbitmq
- zipkin
dockerfile
先把总taomall用maven的命令install装到本地仓库,即jar包
写dockerfile
docker build -f Dockerfile -t docker.io/tao/admin:v1.0 .
docker run -d --name test-admin -p 8080:8080 xxx
k8s和kubesphere
自动部署,扩展和管理容器化应用程序的开源系统,具有自动恢复和水平伸缩特性
k8s之上构建的分布式多租户容器管理平台(云原生)
1.3 环境
springboot
参照springboot学习笔记
vue
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,我们关注与 node.js 的 npm 功能就行
MVVM 思想
-
M:即 Model,模型,包括数据和一些基本操作
-
V:即 View,视图,页面渲染结果
-
VM:即 View-Model,模型与视图间的双向操作(无需开发人员干涉), VM 要做的事情就是把 DOM 操作完全封装起来
在 vue 里,所有的 vue 实例都是组件,,vue 脚手架使用 webpack 模板初始化一个商城项目 项目
mybtis-plus
分页查询:
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params){
//
PageUtils page = brandService.queryPage(params);
return R.ok().put("page", page);
}
public class BrandServiceImpl extends ServiceImpl<BrandDao, BrandEntity> implements BrandService
// this就是BrandServiceImpl,而ServiceImpl里面有page方法
IPage<BrandEntity> page = this.page(
new Query<BrandEntity>().getPage(params),
queryWrapper
);
return new PageUtils(page);
public class Page<T> implements IPage<T>
public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T>
@Override
public IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper) {
return baseMapper.selectPage(page, queryWrapper);
}
public IPage<T> getPage(Map<String, Object> params) {
return this.getPage(params, null, false);