Java常见的技术场景面试题

server/2025/2/6 12:27:59/

一、单点登录这块怎么实现的?

单点登录概述

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

在以前的时候,一般我们就单系统,所有的功能都在同一个系统上。

后来,我们为了 合理利用资源和降低耦合性 ,于是把单系统 拆分 成多个子系统。

现在有一个微服务的简单架构,如图:

使用jwt解决单点登录的流程如下:

参考回答

二、权限认证是如何实现的?

权限认证: RBAC

模型表

三、上传数据的安全性你们怎么控制?

回答:

使用非对称加密(或对称加密),给前端一个公钥让他把数据加密传到后台,后台负责解密后处理

  • 文件很大建议使用对称加密,不过不能保存敏感信息
  • 文件较小,要求安全性高,建议采用非对称加密

四、你负责项目的时候遇到了哪些比较棘手的问题?

回答思路

1,什么背景(技术问题)

2,过程(解决问题的过程)

3,最终落地方案

有4个方面可以回答,只要挑出一个回答就行了

举例:

①:介绍登录业务(一开始没有用设计模式,所有的登录方式都柔和在一个业

务类中,不过,发现需求经常改)

②:登录方式经常会增加或更换,每次都要修改业务层代码,所以,经过我的

设计,使用了工厂设计模式和策略模式,解决了,经常修改业务层代码的问题

③:详细介绍一下工厂模式和策略模式(参考我前面设计模式的文章)

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

1、为什么要采集日志?

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

2、采集日志的方式有哪些

  • ELK:即Elasticsearch、Logstash和Kibana三个软件的首字母
  • 常规采集:按天保存到一个日志文件

2.1ELK基本架构

ELK即Elasticsearch、Logstash和Kibana三个开源软件的缩写

  • **Elasticsearch:****全文搜索和分析引擎,对大容量的数据进行接近实时的存储、**搜索和分析操作。
  • Logstash:是一个数据收集引擎,它可以动态的从各种数据源搜集数据,并对数据进行过滤、分析和统一格式等操作,并将输出结果存储到指定位置上
  • Kibana:是一个数据分析和可视化平台,通常与Elasticsearch配合使用,用于对其中的数据进行搜索、分析,并且以统计图标的形式展示

配置文件

六、查看日志的命令?

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

也可以在logback配置文件中设置日志的目录和名字

查看日志的命令

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

-agentlib:jdwp 是通知 JVM 使用 (java debug wire protocol) 来运行调试环境

transport=dt_socket 调试数据的传送方式

server=y 参数是指是否支持在 server 模式

suspend=n 是否在调试客户端建立起来后,再执行 JVM 。

address=5005 调试端口设置为 5005 ,其它端口也可以

2、idea中设置远程debug,找到idea中的 Edit Configurations…

3. idea中启动远程debug

4. 访问远程服务器,在本地代码中打断点即可调试远程


http://www.ppmy.cn/server/165405.html

相关文章

C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?

使用params关键字,就可以像python传参那样传递多个参数,类似元组 主要作用 params 关键字的主要作用是让方法可以接受不定数量的参数,而不需要在调用方法时显式地创建数组来传递多个参数。这为方法调用提供了更大的灵活性,使得代…

nuxt3 layout导航栏切换问题

nuxt3 layout导航栏切换问题 最近在玩nuxt3&#xff0c;遇到一个问题&#xff0c;我按照官方文档使用的layouts文件夹&#xff0c;然后下面使用了了多个页头页脚&#xff0c; 然后在app.vue是这么配置的 <template><script setup> import { useCookieStore } fr…

实战网络安全:渗透测试与防御指南

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 在数字化时代&#xff0c;网络安全已成为企业和个人不可忽视的重要课题。网络攻击的复杂性与日俱增&#xff0c;从数据泄露…

Autosar-以太网是怎么运行的?(原理部分)

写在前面&#xff1a; 入行一段时间了&#xff0c;基于个人理解整理一些东西&#xff0c;如有错误&#xff0c;欢迎各位大佬评论区指正&#xff01;&#xff01;&#xff01; 1.TCP/IP协议详解 TCP/IP协议包含了一系列的协议&#xff0c;也叫TCP/IP协议族&#xff08;TCP/IP P…

iOS文字滚动:使用CATextLayer实现的跑马灯(附源码)

引言 在 iOS 开发中&#xff0c;跑马灯效果&#xff08;Marquee Effect&#xff09;是一种常见的文本滚动效果&#xff0c;广泛应用于广告展示、动态消息栏、通知推送等场景。通过跑马灯效果&#xff0c;我们能够以流畅的方式展示超出屏幕范围的文本&#xff0c;提升用户体验。…

【怎么用系列】短视频戒除-1-对推荐算法进行干扰

如今推荐算法已经渗透到人们生活的方方面面&#xff0c;尤其是抖音等短视频核心就是推荐算法。 【短视频的危害】 1> 会让人变笨&#xff0c;慢慢让人丧失注意力与专注力 2> 让人丧失阅读长文的能力 3> 让人沉浸在一个又一个快感与嗨点当中。当我们刷短视频时&#x…

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】

&#x1f380;&#x1f380;Shell语法入门篇 系列篇 &#x1f380;&#x1f380; LinuxDocer 容器化部署之 Shell 语法入门篇 【准备阶段】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell变量】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell数组与函数】LinuxDocer 容…

基于PyQt5打造的实用工具——PDF文件加图片水印,可调大小位置,可批量处理!

01 项目简介 &#xff08;1&#xff09;项目背景 随着PDF文件在信息交流中的广泛应用&#xff0c;用户对图片水印的添加提出了更高要求&#xff0c;既要美观&#xff0c;又需高效处理批量文件。现有工具难以实现精确调整和快速批量操作&#xff0c;操作繁琐且效果不理想。本项…