菜单

Juning
发布于 2023-02-21 / 1178 阅读
40
0

面试记录20230221

常用的设计模式有哪些?
工厂模式、代理模式、单例模式、模版模式、观察者模式、适配器模式、策略模式

hashmap为什么需要无符号右移16位?


面试复盘

Spring cloud使用了哪些组件?
使用的Spring cloud alibaba套件,Nacos做注册中心和配置中心,Sentinel做服务熔断,流量控制等。。

服务熔断用的是啥?
Sentinel

Redis怎么数据一致性?
采用延时双删(删除-更新-延时队列删除)

CPU高怎么办?

  1. 使用top命令查看哪一个进程
  2. 使用jstack pid > pid.log将线程栈dump到日志文件中
  3. 对日志进行分析,找出问题代码
    jstack导出栈信息、jstat查看堆使用情况、jmap导出堆情况

慢查询怎么处理?
通过慢查询日志和服务监控进行定位,通过使用explain查看执行计划了解SQL的问题进行针对性的优化,比如:分页优化的延时关联和书签方式、索引是否存在,是否出现问题、避免使用!=、避免使用计算函数、避免使用 JOIN 关联太多的表等等

大文件怎么处理?
先具体问怎么处理法,但肯定是多线程去执行的,具体参考https://zhuanlan.zhihu.com/p/142029812

docker相关命令 如怎么查日志?
docker logs id

docker logs [OPTIONS] CONTAINER
  Options:
        --details        显示更多的信息
    -f, --follow         跟踪实时日志
        --since string   显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
        --tail string    从日志末尾显示多少行日志, 默认是all
    -t, --timestamps     显示时间戳
        --until string   显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看指定时间后的日志,只显示最后100行:

docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

查看最近30分钟的日志:

docker logs --since 30m CONTAINER_ID

查看某时间之后的日志:

docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

查看某时间段日志:

docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" 

评论