首页 > 基础资料 博客日记
Java常见的技术场景面试题
2024-09-14 14:00:07基础资料围观130次
一、单点登录这块怎么实现的?
单点登录概述
单点登录:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统
在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。
使用jwt解决单点登录的流程如下:
参考回答
二、权限认证是如何实现的?
权限认证: RBAC
模型表
三、上传数据的安全性你们怎么控制?
回答:
使用非对称加密(或对称加密),给前端一个公钥让他把数据加密传到后台,后台负责解密后处理
- 文件很大建议使用对称加密,不过不能保存敏感信息
- 文件较小,要求安全性高,建议采用非对称加密
四、你负责项目的时候遇到了哪些比较棘手的问题?
回答思路1,什么背景(技术问题)2,过程(解决问题的过程)3,最终落地方案
有4个方面可以回答,只要挑出一个回答就行了
举例:
①:介绍登录业务(一开始没有用设计模式,所有的登录方式都柔和在一个业务类中,不过,发现需求经常改)②:登录方式经常会增加或更换,每次都要修改业务层代码,所以,经过我的设计,使用了工厂设计模式和策略模式,解决了,经常修改业务层代码的问题③:详细介绍一下工厂模式和策略模式(参考我前面设计模式的文章)
五、你们项目中日志怎么采集的?
1、为什么要采集日志?
2、采集日志的方式有哪些?
- ELK:即Elasticsearch、Logstash和Kibana三个软件的首字母
- 常规采集:按天保存到一个日志文件
2.1ELK基本架构
- Elasticsearch:全文搜索和分析引擎,对大容量的数据进行接近实时的存储、搜索和分析操作。
- Logstash:是一个数据收集引擎,它可以动态的从各种数据源搜集数据,并对数据进行过滤、分析和统一格式等操作,并将输出结果存储到指定位置上
- Kibana:是一个数据分析和可视化平台,通常与Elasticsearch配合使用,用于对其中的数据进行搜索、分析,并且以统计图标的形式展示
六、查看日志的命令?
目前采集日志的方式:按天保存到一个日志文件
1、实时监控日志的变化
实时监控某一个日志文件的变化: tail -f xx.log实时监控日志最后100行日志: tail –n 100 -f xx.log
2、按照行号查询
查询日志尾部最后100行日志:tail – n 100 xx.log
查询日志头部开始100行日志:head –n 100 xx.log
查询某一个日志行号区间:cat -n xx.log | tail -n +100 | head -n 100 (查询100行至200行的日志)
3、按照关键字找日志的信息
查询日志文件中包含debug的日志行号:cat -n xx.log | grep "debug"
4、按照日期查询
sed -n '/2023-05-18 14:22:31.070/,/ 2023-05-18 14:27:14.158/p’xx.log
5、日志太多,处理方式
分页查询日志信息:cat -n xx.log |grep "debug" | more
筛选过滤以后,输出到一个文件:cat -n xx.log | grep "debug" >debug.txt
七、怎么快速定位系统的瓶颈?
比如:
1、压测(性能测试)
-
压测目的:给出系统当前的性能状况;定位系统性能瓶颈或潜在性能瓶颈
-
指标:响应时间、 QPS、并发数、吞吐量、 CPU利用率、内存使用率、磁盘IO、错误率
-
压测工具:LoadRunner、Apache Jmeter …
-
后端工程师:根据压测的结果进行解决或调优(接口慢、代码报错、并发达不到要求…)
2、监控工具、链路追踪工具
- 监控工具:Prometheus+Grafana
- 链路追踪工具:skywalking、Zipkin
3、线上诊断工具Arthas(阿尔萨斯)
- 官网:https://arthas.aliyun.com/
- 核心功能:如下图
火焰图
八、生产环境的问题怎么排查?
已经上线的bug排查的思路:
1,先分析日志,通常在业务中都会有日志的记录,或者查看系统日志,或者查
看日志文件,然后定位问题
2,远程debug(通常公司的正式环境(生产环境)是不允许远程debug的。一般
远程debug都是公司的测试环境,方便调试代码)
一、远程debug
前提条件:远程的代码和本地的代码要保持一致
1、远程代码需要配置启动参数,把项目打包放到服务器后启动项目的参数:
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 project-1.0-SNAPSHOT.jar
2、idea中设置远程debug,找到idea中的 Edit Configurations...
3. idea中启动远程debug
4. 访问远程服务器,在本地代码中打断点即可调试远程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: