当前位置:   article > 正文

常见Java生产问题排查面试题_java线上问题排查面试

java线上问题排查面试

1. 生产环境发生cpu飙高的问题?如何定位解决呢?

线程运行cpu(cpu使用率飙高)

  1. 死循环
public class Test05 {
    public static void main(String[] args) {
        new Thread(new Runnable() {
            public void run() {
                while(true){//死循环
                    System.out.println("111111");
                }
            }
        }).start();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

解决,加入休眠时间
在这里插入图片描述

  1. JUC并发编程cas (乐观锁)

CAS自旋一直重试导致cpu飙高 没有控制自旋次数;乐观锁

解决:控制循环次数

  1. 阿里云Redis被注入挖矿程序,
建议Redis端口不要能够被外网访问
  • 1
  1. 服务器被DDOS(流量、默认请求攻击)导致cpu飙高
可以通过限流、ip黑名单、图形验证码防止机器模拟攻击;
  • 1

在这里插入图片描述

2. 生产环境遇到了报错?你是如何定位解决的呢?

  1. 传统的方式 在生产环境中遇到报错问题,我们是通过搜索日志的方式,排查具体的错误。
    适合于服务端是单机或者少量集群的节点 Tail -200f

  2. 采用aop形式拦截系统错误日志,在将这些错误日志调用微信公众号接口,主动告诉给我们的开发人员
    生产环境发生了故障。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 生产环境服务器宕机,如何解决呢?

  1. 我们公司生产环境,会对我们服务器实现多个节点集群,如果某台服务器发生了宕机,会自动实现故障转移,保证服务的高可用。

在这里插入图片描述
2. 如果服务器宕机 我们可以在服务器上安装 keepalived 监听 java 进程,如果该
java 进程发生了宕机 会自动尝试重启该 java 进程,这是属于软件层面。如果是
物理机器比如关机了,可以使用硬件方式自动重启服务器 例如向日葵

3.如果服务器发生了宕机,尝试重启 n 多次还是失败,我们可以使用容器快速动
态的实现扩容(docker 或者 k8s)k8s

4.重启该服务,如果重启多次还是失败 则会发送短信模板的形式通知给运维人
员。
注意:千万不要回答 直接重启服务器端。
物理机器关机----tomcat 服务器宕机

4. 调用接口的时候,如果服务器端一直没有及时响应,怎么解决?

  1. 如果调用接口发生了响应延迟:是因为我们 http 请求是采用同步的形式,基于
    请求与响应模型如果服务器端没有及时响应给客户端,客户端就会认为接口超
    时,接口发生了超时客户端会不断重试 ,重试的过程中 会导致 幂等性问题
    幂等性问题(需要保证业务唯一性。)
    例如:服务器端 调用网络连接(调用征信接口、发送短信、连接 mysql、redis)

  2. 如果接口响应非常慢,就需要对代码做优化例如 加上缓存减轻 db 查询压力减少GC回收频率

  3. 如果接口代码在怎么优化 就是执行非常耗时时间,因为采用 mq 异步的形式
    不能够使用 同步形式。

举例子:接口代码里面 需要调用非常多接口 在响应客户端
接口代码:

1.调用征信报告接口—15s-30s

在这里插入图片描述
在这里插入图片描述

5. 你在开发过程中,遇到哪些难题?你是怎么解决的呢

如果在面试的过程中被面试官问到:你在开发过程中,遇到哪些难题?
不要答:空指针异常、常见错误异常。

遇到问题→你是如何分析的?→如何排查的?→最终是怎么解决的?

1.分布式事务

2.分布式幂等

例如 我们公司提供了一个接口,被其他公司进行调用。他的公司在调用我们公司接口的过程中,
我们的接口响应超时了,最终触发了客户端重试了,重试的过程当中请求的参数都是相同的,
导致我们接口会重复执行业务逻辑。
  • 1
  • 2
  • 3

解决办法: 全局 id 业务上防重复、 在 db 层面去重复 例如 创建唯一约束

3.定时任务调度

例如:我们项目在生产环境中做定时任务,如果集群的情况下 定时任务重复执行。 解决该问题

1.在打 jar 包的时候 加上一个开关 只让一个 jar 包执行定时任务

2.整合分布式任务调度平台 xxljob 最终分片执行 定时任务集群的执行
定时任务 1 【】跑批 1-10 万 定时任务 2 11-20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.数据同步延迟问题

我们公司 使用 canal 解决 mysql 与 redis+kafka 数据同步问题
发现就是在并发的情况下同步非常延迟,我们整合 kafka 分区模型
根据每张表都有自己独立的 topic 主题,每个 topic 主题有自己独立
分区 每个分区有自己独立消费者 ,解决消息顺序一致性问题。
  • 1
  • 2
  • 3
  • 4
  1. 安全性问题

  2. 生产环境发生 cpu 飙高、内存泄漏

  3. 因为我们的项目前后端分离 跨域的问题

…真实业务场景当中遇到难题

6. 谈谈你们公司日志是如何收集的?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. 聊聊前端到后端整体流程是怎样?

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/533799
推荐阅读
相关标签
  

闽ICP备14008679号