文章目录
- 单点登录这块怎么实现的
- 权限认证是如何实现的
- 上传数据的安全性怎么控制?
- 你们项目中日志怎么采集的
- 查看日志的命令
- 生产问题怎么排查
- 怎么快速定位系统的瓶颈
单点登录这块怎么实现的
单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统
单体项目(基于session):
单个tomcat服务session可以实现用户信息共享
1、每次在做请求的时候,都会去
判断session中是否有用户登录的信息
2、 如果没有就不让访问,直接跳转
到登录页面进行登录
3、登录校验成功
后再把用户的登录信息放到session中
4、在退出登录
的时候照样删除用户的session信息
微服务项目(基于cookie+token):
常见的方式有JWT:
例如:以下微服务板块:
核心步骤:
- 用户访问其他系统,会在
网关判断token是否有效
- 如果token无效则会返回401(认证失败)前端
跳转到登录页面
- 用户发送登录请求,返回浏览器一个token,浏览器把
token保存到cookie
- 再去访问其他服务的时候,都需要
携带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三个软件的首字母
- Elasticsearch是
全文搜索分析引擎
,可以对数据存储、搜索、分析
- Logstash是一个
数据收集引擎
,可以动态收集数据
,可以对数据进行过滤、分析,将数据存储到指定的位置 - Kibana是一个
数据分析和可视化平台
,配合Elasticsearch对数据进行搜索,分析,图表化展示
查看日志的命令
目前采集日志的方式:按天保存到一个日志文件
Linux中查看日志:
实时监控日志的变化
按照行号查询
按照关键字找日志的信息
按照日期查询
日志太多,处理方
生产问题怎么排查
已经上线的bug排查的思路:
1,先分析日志,通常在业务中都会有日志的记录
,或者查看系统日志
,或者查看日志文件,然后定位问题(ELK
)
2,远程debug
(通常公司的正式环境(生产环境)是不允许远程debug的。一般远程debug都是公司的测试环境,方便调试代码)
远程debug
怎么快速定位系统的瓶颈
- 压测(性能测试),
项目上线之前测评系统的压力
压测目的:给出系统当前的性能状况;定位系统性能瓶颈或潜在性能瓶颈
指标:响应时间、 QPS、并发数、吞吐量、 CPU利用率、内存使用率、磁盘IO、错误率
压测工具:LoadRunner、Apache Jmeter …
后端工程师:根据压测的结果进行解决或调优(接口慢、代码报错、并发达不到要求…)
- 监控工具、链路追踪工具,
项目上线之后监控
监控工具:Prometheus+Grafana
链路追踪工具:skywalking、Zipkin
- 线上诊断工具Arthas(阿尔萨斯),
项目上线之后监控、排查
官网:https://arthas.aliyun.com/
核心功能:
火焰图: