java偏功能实现的面试题,教你如何做面霸( 八 )


6.4描述一下 作用 , 并分别介绍以下(>7)
验证与鉴权 。验证:验证密码是否正确鉴权:判断用户是否有权限访问接口 。
token的存储方式 (>7)
内存 , 数据库 , redis,jwt
jwt和redis存储有什么区别 (>8)
jwt只能验证 , 并不能对token删除修改等 , 如果需要踢人 , 或者需要对token进行操作 , 请选择redis.

java偏功能实现的面试题,教你如何做面霸

文章插图
描述一下 核心配置类 (>8)简单介绍一下 的原理(>9)
是一大堆过滤器链 , 分别验证
怎么实现验证码功能(>9)记住我功能怎么实现(>9)
在小公司 +人才真的少 , 所以学吧老铁 。如果未来想成为公司的架构的参与者 , 或者不满于curd ,  应该是值得你掌握的 。
七.中间件 7.1简单介绍一下es (如果简历有写)
Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎 , 它的底层是开源库Apache Lucene 。并有以下特点1.分布式实时文件存储 , 并将每一个字段都编入索引 , 使其可以被搜索 。2.实时分析的分布式搜索引擎 。3.可以扩展到上百台服务器 , 处理PB级别的结构化或非结构化数据 。
说说es的倒排索引是怎么回事 (>6)
记录每个词条出现在那些文档 , 以及文档中的位置 , 可以根据词条快速定位到包含这个词条的文档及出现的位置
es查询索引的语句怎么写 (>6) (以上两个问题答不上来说明不会 不用往下问了 二三线使用概率还是很小的)
GET /20211201-logs/_search{"query": { "match_all": {} }
es使用的场景是什么(>7)
全文检索 , 精准查询 , elk等
boot整合中用了什么客户端 (>7)
简单的可以使用spring提供的ElasticsearchTemplate复杂的可以使用RestClient
查询前缀名相同的索引的查询语句 (>8)
GET /*_logs/_search{"query": { "match_all": {} }
使用的非常少 , 有写的咱就得问啊 。不是必须掌握 。
7.2mq的作用是什么(>5)
削峰 , 异步 , 解耦
使用场景(>6)
向其他服务器异步发送消息大量请求怼过来 , 按照服务器性能慢慢拉取适量请求
说说交换机种类(>7)
fanout:发送给所有绑定该交换机的队列 。Direct:默认的交换方法 , 按照提供的key去寻找队列 。如果key为A , 数据只能发送到A的队列中 。Topic:模糊匹配 , 只要符合该格式就可以 。可以存在两种特殊字符“*”与“#” , 用于做模糊匹配 , 其中“*”用于匹配一个单词 , “#”用于匹配多个单词(可以是零个) 。如*.C.# 可以匹配A.C.B.不能匹配A.B.C.(其中以banding key关联)head:根据消息内容中的headers属性进行匹配 。
怎么保证消息不丢失(>8)
1:队列持久化硬盘2:手动ack3:确认是否发送成功4:集群化处理 5:异地容灾6:发送消息持久化到db中 进行消息的重新发送7:消费者消息固话到db中 通过消息id判断是否重复消费
说说ack和nack
手动应答是否接收成功 , 否则会出现消费者一直占用这队列的情况
了解延时队列和死信队列吗 (>10)
死信队列:如果有有错误消息 如果手动nack同时将消息放回到队列中 那么这条消息会反复消费 留在队列中 如果nack后将消息丢弃 那么如果碰到网络抖动 消息也会丢失。所以 建立死信队列避免消息丢失 。延时队列:在一定条件后触发执行