1、SpringCloud,SpringCloud Alibaba等微服务框架并组合构建分布式微服务系统;
springcloud是spring官方推出的一套微服务解决方案,spring继承了Netflix公司里面的OSS开源套件:Zuul实现应用网关,Eureka实现服务注册与发现,Ribbon实现负载均衡,Hystrix实现服务熔断,随着Netflix对OSS开源组件的闭源和停止维护,Spring也自研了一些组件:Gateway实现网关,LoadBalance实现负载均衡,另外 Alibaba里面的开源组件也实现springcloud这样一套标准,实现了另外一套开源组件:Dubbo实现RPC通信,Nacos实现服务注册与发现一级动态配置中心,Sentinel实现服务限流和降级
springcloud生态的出现有两个重要意义:
--在springcloud出现之前,为了解决微服务架构里面的各种技术问题,需要去集成各种开源框架,因为标准和兼容性问题,所以在时间的时候很麻烦,而springcloud统一了这样一个标准
--降低了微服务架构的开发难度,只需要在springboot的项目基础上通过starter启动依赖集成相关组件就能轻松解决各种问题
2、spring如何去解决循环依赖的问题
spring设计了三级缓存去解决循环依赖问题,第一级存储初始化的bean,第二级存储实例化的bean,第三级存储BeanFactory生成的原始bean对象,并放到二级缓存里面,第三级缓存主要解决代理对象的循环依赖问题。
3、Thread和Runnable区别
继承Thread类,实现Runnable接口
Thread是一个类,可以直接创建对象使用;
Runnable是一个接口,需要实现run方法;
Runnable需要创建一个Thread对象,再把Runnable对象传递给Thread对象,最后调用start方法开启线程
创建Thread对象后,可以直接调用start()方法启动线程
4、mysql最左匹配原则
MySQL建立多了索引(联合索引)有最左匹配的原则,即最左优先:如果有一个2列的索引(a,b),则已经对(a),(a,b)建立了索引;如果有一个3列索引(a,b,c),则已经对(a),(a,b),(a,b,c)建立了索引
5、索引失效
-没有使用索引列作为查询条件
-对索引列进行函数操作
-对索引列进行类型转换
-使用like查询以通配符开头
-OR条件查询,每个OR条件都不涉及到索引列
-查询条件涉及大部分数据,mysql会认为索引意义不大
6、进程线程
进程是正在执行中的程序,可以有多个线程
线程是程序中单个的执行顺序
7、GC回收的原理:
计数方式,初始时是1,被其他对象引用加1,被引用的生命周期结束或者其他对象被赋新值减1,为0时判定被回收
8、InnoDB500万数据量的分页
利用自增主键索引,limit 偏移量,条数