Java 电商类项目的基础问题#1
传统项目和互联网项目的区别?
两者最大的区别是使用人群不同决定的,面向特定人群的是传统项目,面向所有人的是互联网项目。
电商行业的特点?
技术范围广,技术比较多,技术比较新(如:springcloud, dubbo ..);
要求双高:高可用和高并发;
- 高可用:(服务器挂掉后,并不影响服务器使用)
- 集群
- 负载均衡
- 限流(当并发过高会导致服务器宕机,通过限流多余的部分会被限制进入服务器,像 lol 手游日服公测?)
- 降级
- 熔断
- 高并发:(支持并发量要大,允许同时多人访问)
- 分布式,
- 静态化技术
- 静态化简单说是用来每个查询页面都提前查询好,并通过引擎生成一个静态页面,从而达到减少对服务器后台的访问
- CDN服务
- CDN服务简单说是分节点访问,使得不同地区访问不同地区服务器
- 异步并发(通过 MQ 来搞异步,多线程搞并发)
- 缓存技术(如redis)
- 池化(线程池,连接池)
- 队列(Mq)
数据量大,业务复杂(表关系)
电商模式有哪些? B C O P 2 是什么含义?
B:business,企业
C:customer,个人
2:to
O:Offline Online,线上线下
P:peer
B2B2C: 既商家对商家又对个人
B2C:商家对个人
架构图
前端的 IP 和端口经过 nginx 反向代理完成统一入口,再通过网关,ribbon 负载均衡和 hystix 失败容错到达微服务群,通过注册中心完成注册服务和订阅服务,微服务群的数据向下进入数据层,数据层包括关系型数据库 mysql,缓存 redis 和索引库 elasticsearch 集群;微服务通过 MQ 完成消息接收和发送,配置中心完成配置的云端备份。
mysql 中存放关键数据,redis 存放高频数据,elasticsearch 存放经常查询的数据
前端框架结构
因为采用前后端分离,后端不再包含前端内容,故罗列一下前端的技术框架。
前端技术:
-
基础的 html, css, JavaScript
-
JQuery
-
Vue.js
-
基于 Vue 框架的 UI 框架:Vuetify,作用是使得我们不需要手动去编写 css 样式,和 adminLTE 是一样的,adminLTE 是基于 jQuery 的
其中 BootStrap 框架也是做 UI的,不过是利用 DOM 操作,借助 jQuery 实现,不支持 Vue
-
前端构建工具:WebPack,用来打包编译 Vue 组件生成 html,项目编译打包工具
-
前端安装包工具:npm,作用等价于 maven,像 Linux 中的 yum 方便安装
-
Vue 脚手架: Vue-client,可以用来快速开发一个前端项目
-
Vue 路由:vue-router
-
ajax 框架:axios, 封装了 ajax
-
基于 vue 的富文本框架:quill-editor
什么是 SPA?
SPA 是 single page application 单页应用,即整个前端项目只有一个 html 页面,剩下的部分全部由 vue 组件来实现。
前端工程 IDEA 中使用 open 打开