项目总结(1.1)技术知识点回顾

电商项目(1)47

1、多线程:

线程安全问题、为什么要使用多线程:能够提高程序的运行效率、线程池、线程池配置多少合适,线程怎么做通讯,java并发包、信号量、锁的机制(乐观锁、悲观锁、读写锁、重入锁)

2、javaSE的核心知识、反射机制,为什么要使用反射机制:提高可扩展性,通过classForName进行实例化、自定义注释

3、网络通信核心 socket、 tcp与udp、nio、io、bio、粘包、粘包、netty通讯

4、JVM核心,垃圾回收算法、新生代和老年代、并行回收、串行回收、实战调优

5、JavaWeb核心,DNS解析过程,防止表单重复提交(token+验证码)、企业黑名单、白名单

6、重定向(外部实现)与转发原理(内部实现),跨域问题解决方案(nginx搭建网关、httpclient转发,SpringCloud的zuul)、xxs攻击

7、linux基本命令

8、mysql性能优化(先定位慢查询)

9、spring事务、传播行为、

10、springIOC的源码分析(通过反射加上xml解析)、生命周期

11、springBoot、springMVC、springCloud的区别:

springBoot:快速整合第三方框架,简化xml配置,全部使用注解方式进行使用,开发起来异常方便

 springMVC:springMVC是springBoot中默认支持web组件,自动整合MVC    

SpringCloud:是微服务的RPC远程调用框架(RPC:远程过程调用),专门解决微服务的解决框架,里面有很多功能,其中包含eureka作为注册中心,feign作为客户端调用工具,消息中间件等,在微服务中使用的接口协议是http+json格式进行传输;springCloud依赖于springBoot这个组件,所以在编写springCloud时,就相当于在编写控制层。

12、Nginx

主要做什么:反向代理,也可以搭建网关,做转发之类的操作,也可以做负载均衡、(网关实际上与反向代理同义,网关是在接口中,表示会拦截所有请求,通过网关进行转发,目的是解决帮助用户不暴露实际服务的IP地址,只是叫法不同;在服务器中,会被叫做反向代理,进行拦截请求)

Nginx负载均衡算法有哪些:IP绑定、轮询机制、权重(后两种为主),主要为解决高并发做集群

Nginx具体怎么配置负载均衡:在Nginx.config文件中进行配置,一般配置负载均衡用权重weight,指定IP地址upstream

redis:redis常用五种命令、redis怎么做主从复制(master、salve)、哨兵机制原理、持久化机制(例如:在redis宕机之后,它会做持久化,存储在持久化的硬盘上中,以便之后恢复使用,会做持久化)

13、消息中间件ActiveMQ(异步,防止阻塞、补偿机制、解决幂等性问题)当向队列中发消息时,一旦消费者不能够将全部消息消费完时,消息中间件会帮助其进行消费,这样可解决高并发问题,因为其异步执行会防止阻塞(在消息中间件宕机的情况下,消息队列会将其存入持久化的硬盘上,会做持久化,消息不会丢失;一般在消息中间件要宕机时,要做高可用机制,可利用哨兵机制(哨兵机制使用投票选举)来达到高可用的目的,并使用keepalived监听,自动重启服务器。

幂等性问题:在网络有延迟的情况下,因为具有重试机制,可能消费者会进行重复消费,最好自定义一个全局ID,通过这个全局ID进行判断并区分是否有进行提交,另外,重试机制是分批次的,是间隔10秒、30秒、90秒等等,并非同时进行的、并发性发送的。

14、分布式JOB  XXLJob-----主要用于解决幂等性问题

15、dubbo(dubbo干什么用的、dubbo的原理是什么)、dubbox、zookeeper(zookeeper主要是做分布式携带工具,一般在Java中主要是做负载均衡、注册中心。核心是临时节点,临时节点可用于分布式锁怎样实现)

 

 

 

 

 

 

你可能感兴趣的:(项目,面试)