java开发面试:常见业务场景之单点登录SSO(JWT)、权限认证、上传数据的安全性的控制、项目中遇到的问题、日志采集(ELK)、快速定位系统的瓶颈

单点登录(SSO)

单点登录,Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统。
如果是单个tomcat服务,session可以共享,如果是多个tomcat,那么服务session不共享。
为此我们需要提出针对单点登录的解决方案。

单点登录解决方案

  • JWT(常见)
  • Oauth2
  • CAS

以最简单的订单和登录服务为例,JWT实现的单点登录时序图如下:
在这里插入图片描述

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

权限认证

最常见的就是RBAC模型来指导实现权限。

RBAC(Role-Based Access Control)基于角色的访问控制
由3个基础部分组成:用户、角色、权限,有时还可能加其他业务表(譬如菜单表、订单表)
常见结构如下:

  • 5张表(用户表、角色表、权限表、用户角色中间表、角色权限中间表)
  • 7张表(用户表、角色表、权限表、菜单表、用户角色中间表、角色权限中间表、权限菜单中间表)
    即,基础表+业务表+每张表前后组成的中间表

一般使用的框架是:
Apache shiro 、Spring security(推荐)

上传数据的安全性的控制

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

对称加密

文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥。
优点:加密速度快,效率高
缺点:相对不太安全(不要保存敏感信息)

非对称加密

两个密钥:公开密钥(publickey)和私有密钥,公有密钥加密,私有密钥解密
优点:与对称加密相比,安全性更高
缺点:加密和解密速度慢,建议少量数据加密

你负责项目的时候遇到了哪些比较棘手的问题?怎么解决的

从以下几个方面选一个回答即可。(不是很建议用第四个回答)
在这里插入图片描述

日志采集

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

ELK

在这里插入图片描述
Logstash是一个数据收集引擎,可以动态收集数据,对数据进行过滤、分析并存储到指定的位置。
Elasticsearch是全文搜索分析引擎,可以对数据存储、搜索、分析。
Kibana是一个数据分析和可视化平台,配合Elasticsearch对数据进行搜索,分析,图表化展示

常见Linux处理日志的命令

  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. 压测(性能测试),项目上线之前测评系统的压力
  2. 监控工具、链路追踪工具,项目上线之后监控
  3. 线上诊断工具Arthas(阿尔萨斯),项目上线之后监控、排查

压测

指标:响应时间、 QPS、并发数、吞吐量、 CPU利用率、内存使用率、磁盘IO、错误率
压测工具:LoadRunner、Apache Jmeter …

监控、链路追踪工具

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

阿尔萨斯

在这里插入图片描述
其中第六点生成的火焰图如下:
长度越长,说明占用的cpu时间越多。高度越高,说明递归的层数越多。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/292395.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ToB还是ToC?工业级与消费级AR眼镜都能干什么?

来源:虹科数字化与AR 虹科分享 | ToB还是ToC?工业级与消费级AR眼镜都能干什么? 原文链接:https://mp.weixin.qq.com/s/lyTASoKm29woIbfcKBtMvQ 欢迎关注虹科,为您提供最新资讯! 随着科技的飞速发展&#…

【大数据存储与处理】第一次作业

hbase 启动步骤 1、启动 hadoop,master 虚拟机,切换 root 用户,输入终端命令:start-all.sh 2、启动 zookeeper,分别在 master、slave1、slave2 虚拟机终端命令执行:zkServer.sh start 3、启动 hbase&#x…

Megatron模型并行研究

Megatron模型并行研究 1. 技术调研 a. Megatron-LM Megatron-LM针对的是特别大的语言模型,使用的是模型并行的训练方式。但和普通的模型并行不同,他采用的其实是张量并行的形式,具体来说就是将一个层切开放到不同的GPU上,属于层…

多层负载均衡实现

1、单节点负载均衡 1)站点层与浏览器层之间加入了一个反向代理层,利用高性能的nginx来做反向代理 2)nginx将http请求分发给后端多个web-server 优点: 1)DNS-server不需要动 2)负载均衡:通过ngi…

UE4移动端最小包优化实践

移动端对于包大小有着严苛的要求,然而UE哪怕是一个空工程打出来也有90+M,本文以一个复杂的工程为例,探索怎么把包大小降低到最小。 一、工程简介 工程包含代码、插件、资源、iOS原生库工程。 二、按官方文档进行基础优化 官方文档 1、勾选Use Pak File和Create comp…

Java_集合进阶Map集合

一、Map集合 1.1 Map概述体系 各位同学,前面我们已经把单列集合学习完了,接下来我们要学习的是双列集合。首先我们还是先认识一下什么是双列集合。 所谓双列集合,就是说集合中的元素是一对一对的。Map集合中的每一个元素是以keyvalue的形式…

微信公众号利用测试号实现本地调试微信登录授权

实现思路:微信小程序可以通过内置uni.login获取到code,但是微信公众号h5想要微信授权登录,首先需要跳转到https://open.weixin.qq.com/connect/oauth2/authorize?appid&redirect_uri&response_typecode&scopesnsapi_userinfo#we…

Elasticsearch 性能调优基础知识

Elastic Stack 已成为监控任何环境或应用程序的实际解决方案。 从日志、指标和正常运行时间到性能监控甚至安全,Elastic Stack 已成为满足几乎所有监控需求的一体化解决方案。 Elasticsearch 通过提供强大的分析引擎来处理任何类型的数据,成为这方面的基…

50万元+奖金池!英特尔人工智能创新应用大赛正式开赛

毋庸置疑,AI已成为推动全球科技进步的重要动力。AI的快速发展不仅重塑人们对机器智能的认识,也在改变商业、工业和日常生活的方方面面。 作为全球半导体行业的领导者,英特尔以其先进的处理器技术和深度学习框架推动AI的发展,同时…

playbook控制语句

本章主要介绍 playbook中的控制语句。 目录 判断语句when &#xff08;1&#xff09;when判断中>、<、!的使用 &#xff08;2&#xff09;when判断中in的用法 &#xff08;3&#xff09;when判断中is的用法 判断语句block-rescue 循环语句 一个play中可以包含…

如何把透明OLED显示屏介绍给用户人群

透明OLED显示屏是一种新型的显示技术&#xff0c;它具有透明度高、色彩鲜艳、对比度高、响应速度快等优点。下面是一些介绍透明OLED显示屏的要点&#xff1a; 透明度&#xff1a;透明OLED显示屏的最大特点是其透明度&#xff0c;它可以让光线透过显示屏&#xff0c;使得屏幕背后…

源码订货系统的优势

源码订货系统是一种企业购买后可以获得源代码的订货系统&#xff0c;它可以不受软件厂商的规模、发展而修改和使用。与SaaS订货系统相比&#xff0c;核货宝为您分享源码订货系统的四大优势&#xff1a; 一是开放性&#xff1a;源码订货系统是开源的&#xff0c;用户可以掌握源代…