1.参与项目的技术框架(项目介绍会有)
2.缓存的一些好的时间
3.redis数据同步风险?
4.缓存击穿?解决方式?布隆过滤器原理
把所有可能存在的请求的值都存放在布隆过滤器中,当用户请求过来,先判断用户发来的请求的值是否存在于布隆过滤器中。不存在的话,直接返回请求参数错误信息给客户端,存在的话首先判断缓存中是否存在对应的数据,有的话返回对应数据,没有的话去数据库中判断是否有对应的数据,有的话更新缓存数据然后返回对应数据,没有的话返回空数据。
5.springmvc的路径和参数获取的注解
各种mapping类似getmapping
pathvariable requestbody等
6.MyBatis中#{}和${}除了防止注入有哪些区别?
- 变量替换后,#{} 对应的变量自动加上单引号,${} 对应的变量不会加上单引号
{}:动态解析 -> 预编译 -> 执行
- ${}:动态解析 -> 编译 -> 执行
有时只是想直接在 SQL 语句中插入一个不改变的字符串。比如,像 ORDER BY,可以这样来使用: ORDER BY ${columnName}
7.索引失效?
8.数据库查询 平均成绩的前三名?
9.数据库存的某列数据区分大小写,前端怎么在不区分大小写的情况下查询数据?
10.字符串常量和枚举的区别?
11.锁 sync
12.nacos的配置,心跳机制,可以注册第三方服务么?
心跳机制
- 当nacos启动时,微服务会向nacos建立连接并发送心跳请求,证明网络与服务是好的,(http请求连接),nacos会把本次心跳的时间记录下来,之后进行服务注册。服务注册好以后,nacos会有一个定时任务去计算本地时间与最近一次记录的心跳时间的差值,如果大于15s则给服务标记为不健康状态,如果大于30s则下线该该服务。
- 可以注册第三方服务,根据nacos的官方文档可以通过代码设置参数来进行注册,通过设置一些属性如:服务名,服务实例ip,服务实例port,集群名,实例属性等
13.取数据库前三个数值最大值
max分, where id in(可以传一个list)14.nacos使用
15.微服务访问流程
前端请求,nginx,网关,nacos上找到服务,访问服务,服务与服务之间用feign调用。16.feign怎么调用的(调用注解)
@FeignClient的注解value跟微服务名字,fallbackFactory跟服务降级类,configuration跟feign的配置类
@EnableFeignClients 启动类加,为了使标注feignclient注解的接口被注入到ioc容器中。
根据controller方法重新写,feign的方法中,url需要写全路径17.为什么不用eureka?
面试题第一条eureka和nacos的区别。
- 首先nacos既是注册中心也是配置中心,如果用eureka的话就必须在引入一个配置中心配合eureka.
- nacos的功能更丰富,设置权限,namespace等
- eureka功能少,并且2.X版本的开源工程不更新