Skip to content

面试总结20203回答版

部分记录,后续使用了录音,手机进行复盘

20240318

SpringCloud

安全测评怎么做的

image.png

部分可能相关联内容

  1. 代码安全审计
  • 静态代码分析:使用工具如SonarQube、Fortify或Checkmarx等对代码进行静态分析,以识别安全漏洞和不良编码习惯。
  • 依赖项扫描:利用工具如OWASP Dependency-Check或Snyk扫描项目依赖的库和框架,识别已知的安全漏洞。
  1. 认证与授权
  • 强制认证:确保所有服务都实施了强制的认证机制。可以使用Spring Security或OAuth2.0、JWT(JSON Web Tokens)等技术进行身份验证和授权。
  • 服务间通信安全:服务间通信应使用HTTPS或其他安全通道,确保数据传输过程中的加密。

修复过哪些漏洞

待完善

image.png

漏洞风险

image.png

你熟悉SpringCloud 的哪些组件

Nacos + OpenFeign

Nacos + Ribbon + Gateway + OpenFeign + Sentinel + xxl-job

权限管理

RBAC 模型 + SpringSecurity + 菜单权限管理

项目授权你们项目是怎么做的

认证授权 → 认证 + 授权 RBAC 模型(用户角色权限)

Gateway 模块

工厂建模 + 认证授权 + 角色管理 放在同一个模块 → 网关

身份认证你们怎么做的

Cookie :存放在客户端,一般用来保存用户信息

Session:Session 的主要作用就是通过服务端记录用户的状态

JWT(JSON Web Tokens) 方式

SpringSecurity + JWT 方式

API网关授权

Gateway 网关,集成授权和路由转发

路由z转发

SpringSecurity 框架作为登陆认证

JWT 作为授权令牌认证

API 网关集成,一般会使用 Gateway 集成认证和访问授权(单独认证访问)

Gateway 你们怎么用的

image.png

SpringCloud 和 SpringBoot 有什么区别

image.png


Vue

组件,怎么传值

在Vue中,组件之间的数据传递主要通过propsevents来实现,这遵循了Vue推荐的单向数据流模式。父组件通过props向子组件传递数据,子组件通过事件向父组件发送消息。

组件生命周期

created 创建

monuted 挂载

destroyed 销毁

image.png

你写过组件

一般有全局定义、局部定义

一般是局部定义,我的理解是:组件其实也是一个页面,他只是封装了部分内容,多了一些数据的入口,其他地方作为调用,传入数据,复用组件

组件之间会使用 props 和事件 进行传值

引入:

2e95c0317b36972805038cd94b9272c.jpg

插槽

插槽基本用法;

https://cn.vuejs.org/guide/components/slots

模板 vue

4ba63e85ee39566a000bccaa0ce7968.png


Docket

Docket 的网络模式有哪几种

Docker容器的网络模式定义了容器的网络堆栈如何与宿主机以及其他容器交互。Docker支持多种网络模式,包括:

### 1. bridge(桥接模式)

- 默认网络模式。
- 当容器运行在桥接模式下,Docker会将容器连接到一个内部网络上,它通过一个虚拟桥接网络在宿主机上进行通信。
- 容器拥有自己的IP地址,并且可以与同一网络上的其他容器通信。
- 如果要从外部访问容器,需要配置端口映射。

### 2. host(主机模式)

- 容器共享宿主机的网络命名空间,直接使用宿主机的网络。
- 容器不会被隔离在自己的网络内,而是直接使用宿主机的IP和端口。
- 这种模式可以提高网络性能,但减少了网络隔离。

### 3. none(无网络模式)

- 容器拥有自己的网络命名空间,但不会为容器配置网络接口。
- 通常用于测试或者需要完全隔离网络的应用。

### 4. container(容器网络模式)

- 允许一个容器共享另一个容器的网络命名空间。
- 这意味着它们会共享同一个IP地址和端口范围。
- 适用于一组紧密耦合的容器,它们需要通过localhost互相通信。

### 5. overlay(覆盖网络模式)

- 专为Docker Swarm集群设计,支持不同Docker守护进程上的容器间的网络通信。
- 使用分布式数据存储来保持网络状态,跨多个宿主机提供容器网络互连。
- 允许Swarm服务之间的安全通信。

### 6. macvlan(MACVLAN网络模式)

- 允许给容器分配MAC地址,使其看起来像是物理网络上的一个物理设备。
- 对于需要直接与物理网络交互的容器非常有用。
- 可以让容器直接出现在物理网络上,而不是通过Docker主机进行NAT转换。

每种网络模式都有其特定的用例和性能特点。选择合适的网络模式取决于应用的具体需求,例如对性能、安全或隔离级别的要求。

讲一下 Docket compose

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。

通过使用YAML文件来配置应用服务,可以通过单个命令快速启动和停止与应用相关的所有容器。这样不仅简化了容器管理过程,还能确保在不同环境中的一致性运行。

image.png

讲一下容器编排调度

Nginx

文件从服务器A 的一个文件夹 到 服务器 B 使用什么命令可以搞

反向代理、配置共享文件夹?

Redis

Redis 缓存更新是怎么做的

  • 全量更新

Spring

讲一下 AOP,以及具体如何使用的

日志,事务,权限

织入点,前置通知,后置通知,环绕通知

这个还可以写一下 AOP + Redis 实现延迟双删操作

20240325

K8s、Dubbo、NIO

项目,基础,场景题考察一下你,看一下你的个人能力和思考方式,给出一个OK的策略

  • 1、项目上没用什么好问的(改简历)
  • 2、项目经历太薄弱了点,没什么东西,比大部分校招生的项目经历介绍还要差一些

jvm docker的使用

问了一下nio

问了一下mq的使用

问了一下valatile

问了一下设计模式

20240407

说一下 HashMap 的底层实现

  • 1.7 头插法会导致循环链表问题
    • 由于每次插入都会改变链表的顺序,这可能会导致长时间的性能下降
  • 1.8 改为了尾插法,在并发修改时减少了循环链表出现的风险

image.png

说一下 mysql 的慢查询分析,以及索引优化注意的地方

  • 看是否索引失效
  • 看是否索引命中
  • 看是否索引合理

说一下什么时候会索引失效

  • like ''
    • 使用LIKE操作符进行模糊匹配,且匹配模式以通配符(如%_)开头时,
  • or
    • 当使用OR连接多个条件时,如果所有条件列都被索引,那么索引有可能被使用;但如果其中一列没有被索引,那么即使其他列有索引,索引也可能不被使用
  • 索引字段使用 is null,is not null,索引可能失效
  • 表达式进行计算

说一下 mysql 的隔离级别

  • 重复读未提交 脏读
  • 重复读已提交 可重复读
  • 可重复读 幻读
  • 串行化

说一下你在创建数据库的表有什么注意的地方,以及你们项目组的字段规范说一下

  • 创建,常见的字段, 创建人,创建时间,更新人,更新时间,uda 额外字段
  • 字段类型和字段长度要合理设置,比如说 vin 要设置到 char 17;varchar
  • is 开头不太好

说一下死锁你们怎么处理的

装饰器设计模式和组合模式的区别你讲一下,怎么用的

比如说我有一堆无序的元素,我想要让他放入到一个先进先出的集合中,你会怎么做

说一下 mysql 中的关键字优先级

说一下 spring 的传播事务