项目背景
技术选型
项目架构进化
单体项目
前后端分离项目
集群和负载均衡
分布式
微服务架构
单体项目
前后端都部署在同⼀台服务器上(前后端代码都在同⼀个应⽤中)
缺点:对静态资源的访问压⼒也会落在Tomcat上
前后端分离
前后端分离:前端和后端分离开发和部署(前后端部署在不同的服务器)
优点:将对静态资源的访问和对接⼝的访问进⾏分离,Tomcat服务器只负责数据服务的访问
集群与负载均衡
理论无限并发,一个挂了短期不影响项目
优点:提供并发能⼒、可⽤性
分布式
- 基于redis实现 分布式锁
- 分布式数据库mycat
- redis集群
- 数据库中间件
- 消息中间件
redis同时访问先到redis检查是否有同一个id
数据库也要分布式
有了集群都要有负载均衡
ES做数据优化的,快速检索
微服务架构
- 微服务架构:将原来在⼀个应⽤中开发的多个模块进⾏拆分,单独开发和部署
- 保证可用性、性能
SSM手动整合的问题
步骤类似,简化过程中的复杂配置,引出SpringBoot
步骤多,配置繁琐
- 创建maven项目
- 部署mybatis:添加依赖、创建配置文件
- 部署Spring\SpringMVC:添加依赖、创建配置文件
- 添加整合依赖
- 整合配置
服务器主机部署繁琐
- 安装JDK
- 安装Tomcat
- 安装Mysql
- 项目打包,点package
- 部署项目,将war包放到Tomcat
- 启动Tomcat
软件开发步骤
问题定义/提出问题
可⾏性分析(技术、成本、法律法规)
需求分析(需求采集、需求分析)---->甲⽅
概要设计
架构设计(技术选型、架构模式、项⽬搭建)
数据库设计
UI设计
业务流程设计
详细设计
实现步骤(业务流程的实现细节)
编码
根据设计好的实现步骤进⾏代码实现
开发过程中开发者要进⾏单元测试
测试
集成测试
功能测试(⿊盒)
性能测试(⽩盒)
交付/部署实施
数据库设计流程
根据项⽬功能分析数据实体(数据实体,就是应⽤系统中要存储的数据对象)
商品、订单、购物⻋、⽤户、评价、地址…
提取数据实体的数据项(数据对象的属性)
商品(商品id、商品名称、商品描述,特征)
地址(姓名、地址、电话…)
使⽤数据库设计三范式检查数据项是否合理
分析实体关系:E-R图
数据库建模(三线图)、建模⼯具
建库建表-SQL
数据库设计分析
PDMan建模⼯具使⽤
可视化创建数据表(数据表)
视图显示数据表之间的关系(关系图)
导出SQL指令(模型–导出DDL脚本)
记录数据设计的版本-数据库模型版本的管理(模型版本)
同步数据模型到数据库(开始-数据库连接)
SPU 和 SKU