常用的设计模式有哪些?
工厂模式、代理模式、单例模式、模版模式、观察者模式、适配器模式、策略模式
hashmap为什么需要无符号右移16位?
面试复盘
Spring cloud使用了哪些组件?
使用的Spring cloud alibaba套件,Nacos做注册中心和配置中心,Sentinel做服务熔断,流量控制等。。
服务熔断用的是啥?
Sentinel
Redis怎么数据一致性?
采用延时双删(删除-更新-延时队列删除)
CPU高怎么办?
- 使用top命令查看哪一个进程
- 使用
jstack pid > pid.log
将线程栈dump
到日志文件中 - 对日志进行分析,找出问题代码
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"