【高频面试题】常见技术场景

单点登录这块怎么实现的

单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统

单体项目(基于session):

在这里插入图片描述

单个tomcat服务session可以实现用户信息共享

1、每次在做请求的时候,都会去判断session中是否有用户登录的信息
2、 如果没有就不让访问,直接跳转到登录页面进行登录
3、 登录校验成功后再把用户的登录信息放到session中
4、在退出登录的时候照样删除用户的session信息

微服务项目(基于cookie+token):

在这里插入图片描述
常见的方式有JWT

例如:以下微服务板块:

在这里插入图片描述

在这里插入图片描述
核心步骤:

  1. 用户访问其他系统,会在网关判断token是否有效
  2. 如果token无效则会返回401(认证失败)前端跳转到登录页面
  3. 用户发送登录请求,返回浏览器一个token,浏览器把token保存到cookie
  4. 再去访问其他服务的时候,都需要携带token,由网关统一验证后路由到目标服务

权限认证是如何实现的

后台的管理系统,更注重权限控制,最常见的就是RBAC模型来指导实现权限

RBAC(Role-Based Access Control)基于角色的访问控制

3个基础部分组成:用户、角色、权限
具体实现

  • 5张表(用户表、角色表、权限表、用户角色中间表、角色权限中间表)
  • 7张表(用户表、角色表、权限表、菜单表、用户角色中间表、角色权限中间表、权限菜单中间表)

以5张表的为例:
在这里插入图片描述
流程:张三登录系统—> 查询张三拥有的角色列表—>再根据角色查询拥有的权限

根据用户去查对应角色,再根据角色去查权限,然后把这些信息封装到一个集合中返回。

基本都要搭配权限框架去实现权限控制
权限框架:
Apache shiro 、 Spring security(推荐)
参考链接:【Spring Security权限框架】SpringBoot整合Spring Security实现权限控制

上传数据的安全性怎么控制?

也就是当我们在浏览器向后台上传数据的时候,会涉及到网络传输,这一阶段如果有人通过某种手段可以截取数据,造成数据泄漏。
在这里插入图片描述
解决方案:
使用非对称加密(或对称加密),给前端一个公钥让他把数据加密后传到后台后台负责解密后处理数据

对称加密:
文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥
当然加密算法也是一样的

在这里插入图片描述非对称加密:
两个密钥:公开密钥(publickey)和私有密钥,公有密钥加密私有密钥解密
在这里插入图片描述

两者对比无非就是加密和解密使用的秘钥是相同还是不同。 并且优缺点也很明显,实现简单的速度就快,缺点就是不安全,实现复杂的速度就慢,安全性高。

你们项目中日志怎么采集的

日志是定位系统问题的重要手段,可以根据日志信息快速定位系统中的问题

采集日志的方式有哪些?

通常使用:ELK:即Elasticsearch、Logstash和Kibana三个软件的首字母

在这里插入图片描述

  1. Elasticsearch是全文搜索分析引擎,可以对数据存储、搜索、分析
  2. Logstash是一个数据收集引擎,可以动态收集数据,可以对数据进行过滤、分析,将数据存储到指定的位置
  3. Kibana是一个数据分析和可视化平台,配合Elasticsearch对数据进行搜索,分析,图表化展示

查看日志的命令

目前采集日志的方式:按天保存到一个日志文件

Linux中查看日志:
实时监控日志的变化
按照行号查询
按照关键字找日志的信息
按照日期查询
日志太多,处理方

在这里插入图片描述

生产问题怎么排查

已经上线的bug排查的思路:
1,先分析日志,通常在业务中都会有日志的记录,或者查看系统日志,或者查看日志文件,然后定位问题(ELK)
2,远程debug(通常公司的正式环境(生产环境)是不允许远程debug的。一般远程debug都是公司的测试环境,方便调试代码)

远程debug
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

怎么快速定位系统的瓶颈

  1. 压测(性能测试),项目上线之前测评系统的压力

压测目的:给出系统当前的性能状况;定位系统性能瓶颈或潜在性能瓶颈
指标:响应时间、 QPS、并发数、吞吐量、 CPU利用率、内存使用率、磁盘IO、错误率
压测工具:LoadRunner、Apache Jmeter …
后端工程师:根据压测的结果进行解决或调优(接口慢、代码报错、并发达不到要求…)

  1. 监控工具、链路追踪工具,项目上线之后监控

监控工具:Prometheus+Grafana
链路追踪工具:skywalking、Zipkin

  1. 线上诊断工具Arthas(阿尔萨斯),项目上线之后监控、排查

官网:https://arthas.aliyun.com/
核心功能:
在这里插入图片描述

火焰图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值