一、项目介绍
拼博到无能为力,努力到感动自己
本次项目为B2C电商平台,电商平台分类:
- B2C(平台运营⽅即商品的卖家比如⼩⽶商城)
- C2B2C(类似一条街上有多家店铺比如淘宝)
Java应用领域广,但主要用于Web的项目开发,Web项目分两种:
- 一种是企业级开发(专供某个组织使用的比如学校的学生管理系统)
- 一种是互联网开发(提供给互联网用户使用的系统比如电商、短视频)
技术选型
项目架构:前后端分离
前端技术:vue、axios、meiziUI以及layui和bootstap(做UI界面)
后端技术:SpringBoot+Mybatis、Restful、swagger
服务器搭建:Linux、nginx
二、项目架构的演进
2.1单体架构
前后端项目部署在同一台服务器上
一个tomcat后端服务器大概是200-300的并发,一个nginx前端服务器大概5w
缺点:对静态资源的访问也会落到Tomcat上
2.2前后端分离
前端和后端分开开发和部署
优点:对静态资源的访问和对接口的访问进行分离,静态资源的访问用Nginx,tomcat只负责对接口的访问
2.3集群搭建
前后端分离只能在一定程度上解决并发问题
- 服务器集群:多台服务器构成的一个整体,
- 服务器节点:集群中的某台服务器就是一个节点
- 负载均衡:将对集群的并发请求按需分配到不同的服务器节点上
2020双11淘宝1s的50多万并发是目前的记录
优点:提供了并发能力、高可用性
2.4分布式
mysql默认最大连接151
基于redis实现分布式锁
mycat分布式数据库
redis集群
数据库中间件:ElasticSearch或MQ做搜索优化
消息队列中间件
2.4微服务架构
互联网项目三高:
- 高并发
- 高可用:分布式
- 高性能:微服务
将原来一个应用中开发的多个模块进行划分,单独开发和部署
微服务架构保证高可用和高性能
- 一个模块的问题会导致整个服务挂掉
- 随着功能的不断增加,整个服务挂掉的可能性增加
- 服务间的通信问题
三、项目搭建
maven的聚合工程搭建后端,前端采用vue和axios,后端使用springboot整合
3.1技术储备
- SpringBoot:实现无配置的ssm整合
- Maven聚合工程:实现模块的复用
—————————————–分割线2022-5-14——————————————————