网络建站培训,Wordpress分享到微信图标,wordpress 更改中文,wordpress搜索全站1、用户注册登录这一块用了哪些技术#xff1f;数据库主要涉及那些表#xff1f;
用了BCrypt加密算法#xff0c;jwt生成token#xff0c;网关实现全局过滤器校验token#xff0c;还用了拦截器#xff0c;获取在网关是指到请求头的userid存到threadlocal里面#xff0c…1、用户注册登录这一块用了哪些技术数据库主要涉及那些表
用了BCrypt加密算法jwt生成token网关实现全局过滤器校验token还用了拦截器获取在网关是指到请求头的userid存到threadlocal里面涉及到的表有用户信息表。
2、token过期时间token过期了怎么办
token过期时间设置的是30分钟过期了的话会返回401错误信息让当前浏览页强行跳转到登录页面让用户手动更新token
3、数据库的三大范式
1.属性不可再分及每一个列不可再分 2.表中不存在部分依赖非主键列要完全依赖主键 3.不存在传递依赖
4、索引的类型有哪些常用的是哪些
主键索引、唯一索引、普通索引、联合索引、聚集索引、非聚集索引、hash索引、树索引
5、如何创建索引
1.自动创建通过约束系统创建 2.手动创建create index 3.使用alter语句修改索引
6、索引失效场景
1.违反最左前缀法则 2.范围查询右边的列不能使用索引 3.不要在索引列上进行运算操作索引将失效 4.字符串不加单引号造成索引失效类型转换 5.以%开头的模糊查询
7、说一下对Spring的了解
Spring是一个开源框架为简化企业级应用开发而生。Spring可以简化开发进行框架整合可以进行模块化开发实现各层之间的解耦合关系。Spring的核心是IOC、DI、AOP
8、IOC、DI和AOP是什么
IOC是控制反转将主动new对象转换成了IOC来创建对象bean与bean在IOC容器中的依赖关系通过DI来实现有setter注入和构造器注入AOP面向切面编程就是在不改变源代码的情况下对方法进行增强。主要用于权限控制、事务管理、记录日志等底层是基于动态代理的如果是接口就用JDK动态代理如果是类就用CGLIB实现动态代理。
9、Spring的设计模式含义
1.工厂模式Spring使用工厂模式通过BeanFactory和ApplicationContext来创建对象 2.单例模式Spring的bean默认为单例模式 3.策略模式例如Resource的实现类针对不同的资源文件实现了不同方式的资源获取策略 4.代理模式Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术 5.模板方法 6.适配器模式 7.观察者模式 8.桥接模式
10、集合有哪些
List、Set、Map
11、List集合下面有哪些
ArrayList、LinkedList、Vector
12、ArrayList和LinkedList的区别
ArrayList是由数组实现的所以查询效率高增删慢 LinkedList是由双向链表实现的所以增删效率高
13、java的基本数据类型
byte、short、int、long char、float、double、boolean
14、String转char怎么转
String——》charcharAt(index),toCharArray()返回char类型的数组 char——》StringString.valueOf(‘c’)效率最高
15、项目中为什么用SpringCloudSpringBoot底层原理了解多少
首先微服务架构是现在的主流架构springboot是构建在spring框架基础上的嘛可以简化常用的工程配置比如端口访问路径啥的它还有一些辅助功能比如内置服务器能快速部署学习成本低springboot的起步依赖也可以简化依赖的配置把依赖的管理交给了springboot不用去关注不统一来的不同版本是否存在冲突然后springCloud继承了各种微服务功能组件并且基于springboot实现了自动装配开箱即用springcloud是为服务架构的一站式解决方案。
16、为什么用springcloud不用dubbo
springcloud的定位是微服务架构下的一站式解决方案dubbo主要是在于服务的调用和治理。 springcloud依托的是spring平台具备更完整的生态系统dubbo一开始只是用来做RPC远程调用
17、看你写了MinIO解释下是用到了啥
将资讯的详情页和一些素材存储到了Minio
18、kafka都能干什么
kafka是一个消息中间件吞吐量很高不仅可以发布、订阅消息还可以做流式计算
19、SpringBoot配置文件有哪些
minio、网关、端口号、spring、nacos、mongodb、数据库的配置
20、介绍下ES哪些项目中用到es干了什么
es是一款开源的搜索引擎可以用来实现搜索、日志统计、分析、系统监控等功能项目中使用es做了资讯搜索功能并且对搜索的结果进行高亮显示
21、redis热点数据怎么实现怎么完成排序
在使用redis之前统计上报修改业务代码在操作redis之前加入key使用次数的统计定时把收集到的数据上报到统一的服务进行聚合运算 1.Redis集群扩容增加分片副本分摊客户端发过来的读请求 2.使用二级缓存即本地jvm缓存减少redis的读请求
22、redis的数据结构有哪些
String、List、Hash、set、zset
23、分布式锁是怎么实现的锁哪些东西
基于数据库实现版本号控制mpVersion标记、向容器中配置乐观锁的拦截器、redis的setnx命令实现setnx和设置过期时间不能实现原子性操作可以使用set的拓展命令set key value ex nx 在延迟任务服务的任务信息表中加了version字段控制版本在延迟任务刷新的方法中用setnx加了分布式锁防止任务重复刷新
24、springcloud的注册中心用的什么配置中心
注册中心和配置中心用的都是nacos
25、网关用的什么
gateway
26、feign调用怎么使用服务方没有feignclient能被调用吗
1.引入feign依赖 2.编写feign客户端接口用FeignClient注解标注 3.在服务提供者中实现feign客户端接口 4.在服务消费者的启动类上用EnableFeignClient开启feign调用使用feignclient中定义的方法。 feignclient也可以写在服务消费端上
27、讲一讲什么是熔断
雪崩问题微服依靠服务器来创建线程而服务器的性能有瓶颈当请求一致阻塞时会导致服务器资源耗尽也就会导致服务不可用依赖于当前服务的其他服务也会不可用形成了级联失败就是雪崩。 熔断降级由断路器统计业务执行的异常比例如果超出阈值则会熔断该业务拦截访问该业务的一切请求
28、mybatis$和#的区别
#表示占位符相当于jdbc的底层是PreparedStatementsql只编译一次没有sql注入的问题#中传入的是基本类型String可以随便写建议写成接口方法的参数名。 $相当于字符串拼接底层是Statement会重新编译sql有sql注入的问题。当传入的是简单类型的时候只能写value
29、数据的四大特性
原子性、一致性、隔离性、持久性
30、事务的隔离级别
读未提交、读已提交、可重复读mysql默认、串行化
31、多线程的实现方式线程池实现原理线程池回收
1.继承Thread类 2.实现Runnable接口 3.实现Callable接口 4.利用线程池创建 工作线程启动后就进入了runworker方法里面是一个while循环循环判断任务是否为空若不为空执行任务若取不到任务或发生异常退出循环执行processworkerExit在这个方法里把工作线程移除掉。 线程池创建线程工作线程从任务队列中获取任务执行完任务将线程归于线程池管理 线程池7大参数核心线程数、最大线程数、线程存活时间、时间的单位、任务队列、创建线程的工厂、拒绝策略
32、mysql搜索引擎
MyISAM类型不支持事务处理而InnoDB类型支持。MyISAM类型强调的是性能其执行速度比InnoDB类型更快而InnoDB提供事务支持以及外键等高级数据库功能。
33、B树的底层
1.有两种节点一种是索引节点一种是叶子节点 2.索引节点不会保存记录只用于索引所有数据都保存在B树的叶子节点 3.B树的所有叶子节点会形成一条链表叶子本身也是按照索引值从小到大排序的更方便范围查找 3.B树的索引值一定会全部出现在叶子节点
34、线程池的好处
1.降低资源的消耗 2.提高响应的速度 3.提高线程的可管理性
35、线程的数据如何保持独立
可以使用ThreadLocalThreadlocal为变量在每个线程中都创建了一个副本每个线程可以访问自己内部的副本变量
36、使用包装类的好处
封装了基本类型的操作创建集合对象可以对元素的数据类型用泛型进行限定而泛型类型只能是引用类型那么基本类型就用不了了就要使用对应的包装类
37、sql优化
1.不要用select * 2.用in代替or 3.禁止不必要的order by排序 4.尽量避免使用子查询 5.使用批量插入 6.使用limit 7.优化group by语句
38、缓存什么时候设置淘汰策略
在Redis Memory占用超过我们配置的阈值的时候触发策略执行
39、消息队列丢失情况
生产者消息确认机制、消息持久化、消费者消息确认机制、消费消息失败重试机制