面试题-技术场景和工具
[TOC]
单点登录是什么?
单点登录又叫SSO,就是在分布式的场景中,只需要在一个节点登录,就可以访问其他节点
单点登录怎么实现?
当访问一个微服务时,会先经过网关,在网关中定义一个过滤器,判断token是否过期、是否有效
- 如果Token存在且正确则放行
- 没有Token或错误响应提示
网关放行之后,后续的模块根据请求参数来判断使用哪种登录方式(账号密码登录、验证码登录、扫码登录),如果登录成功,会生成一个新的Token并返回给客户端。此后访问每个模块都需要携带Token,否则需要重新认证
扫码登录怎么实现?
使用Java实现微信扫码登录,会有四个主要步骤,分析出每个步骤的详细细节:
- 第一部分:用户在客户端点击登录按钮,请求后端,展示二维码
- 第二部分:用户同意授权,携带授权码code回调服务器
- 第三部分:根据授权码code申请令牌信息并封装
- 第四部分:根据令牌获取用户信息并封装
- 第五部分:详细业务,校验用户,将业务相关信息保存数据库
- 第六部分:登录成功
扫码支付怎么实现?
生成二维码:创建商品订单、生成支付交易记录、生成二维码图片地址展示给用户
用户扫码下单:请求支付平台,支付成功后,支付平台异步通知商户支付结果
发送支付通知:短信、邮件、应用内消息等形式
大文件分块上传怎么实现?
(1)前端上传文件前,先根据文件计算MD5值,并携带MD5值请求检查文件是否存在
- 如果文件在系统已经存在,则不再上传。
- 如果文件在系统不存在,则前端将文件进行分块,准备开始上传
(2)前端上传前给服务器发送消息,验证当前分片是否已经上传。
- 如果已上传则不再上传
- 如果未上传则开始上传分块
(3)前端使用多线程上请求上传分块,服务端将分块信息上传到MinIO。
(4)前端所有分片上传完毕后,发送合并分片请求,校验文件的完整性。 (上传的分片应该具备顺序标记)
(5)前端给服务器传一个MD5值,服务层根据文件信息找到MinIO中的分块文件,下载到本地临时目录,将所有分块下载完毕后开始合并
(6)服务器合并文件后,利用MD5值计算是否与源文件一致。
- 如果一致,合并成功
- 如果不一致,说明文件可能由于网络丢包导致文件不完整,需要重新上传
(7)合并完成将合并后的文件上传到MinIO。并删除MinIO中的分片
系统怎样异常处理的?
自定义异常处理类
全局异常处理机制
多种搜索模式怎么实现的?
调用策略类中的策略方法
策略方法根据配置文件中的属性判断哪个实现类执行
将执行结果返回
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 远方の博客!
评论
GitalkValine













