1 第三阶段面试题
1.1 电商行业特点
1.
分布式
垂直拆分
:
根据功能模块进行拆分
水平拆分
:
根据业务层级进行拆分
2.
高并发
用户单位时间内访问服务器数量
,
是电商行业中面临的主要问题
3.
集群
抗击高兵发的有效手段
,
同时集群内部实现高可用
4.
海量数据处理
随着公司数据的不断积累
.
自身的数据量很庞大
.
如果高效的处理数据
/
分析
1.2 框架调用流程
1.3 EasyUI 后台调用流程
1.4 分布式项目的设计思想
为了实现架构之间的松耦合
,
将项目根据分布式的思想进行拆分
.
1.
项目的垂直拆分
根据功能模块的不同将项目进行拆分
.
2.
项目的水平拆分
在大型项目中
,
由于开发的人数众多
,
项目复杂度高
.
为了保证项目开发的耦合性低
.
实现项目的水平拆分
.
将一个大型项目根据层级模块进行拆分
.Controller
项目
/Service
项目
Mapper
项目
项目创建时采用聚合项目的方式进行管理
1.5 分布式项目的 jar 包如何管理
将项目中用到公共的 jar 包使用服务支撑项目 jt-parent 进行添加,其他的项目只需要继
承 jt-parent 后获取对应的 jar 包全部依赖.从而实现了 jar 包的统一管理
1.6 介绍一下通用 Mapper
1.
早期使用
JDBC
操作数据库
.
该操作特别的繁琐
,
并且所有的数据需要自己手动的封
装
.
2. JPA:
是
java
持久化的
API(
用面向对象的方式操作数据库
)
思想
User user = new User(); setXXXX
User.setId(1);
User.setName(tom);
工具
API.insert(user); JPA
内部将对象自动转化为
sql
语句
Insert into …….
3. Haibernate
框架
.
号称是自动化的
(ORM)
程序员只需要操作对象
,
从而完成了对数据库的操作
.
缺点
:
1.
做新增
/
删除
/
修改会产生一些冗余的
sql(
出于安全性性考虑
)
2.
如果做多表关联操作
(CRUD) ,
需要装备配置文件
,
通过配置文件进行数据关
联设定
.
同时需要学习
Hql(
语句
)
3.
早期数据库容量是有限
,
超过
500
万后查询效率开始变低
.
4.Mybatis
优点
:
继承
ORM,
摈弃了冗余的
sql(
自己手写
),
5.
通用
Mapper
插件基于
mybaits
的
效果
:
可以实现单表
CRUD
使用对象操作
.(
反射机制
)
1.7 Nginx 是什么,有什么作用
Nginx (engine x)
是一个轻量级的是一个高性能的
HTTP
和反向代理服务器
,
其特点是占
有内存少,并发能力强
主要是用来反向代理和实现负载均衡
.
1.8 谈一下反向代理和负载均衡
说明:
1. Nginx 首先需要监听特定的域名.
2. 当用户根据域名进行资源访问时.首先会访问 nginx
3. 之后 nginx 代替请求者根据内部的配置文件,实现反向代理.将请求转化为特定的请
求路径进行资源访问.
4. 当 Nginx 获取资源后将数据返回给用户.完成请求的正确的响应.
负载均衡:访问量高时,可以让服务器尽量分摊压力,
实现策略:轮询,权重,IP_HASH(一般不用)
评论0