zoukankan      html  css  js  c++  java
  • 工作中遇到的异常

    1.栈溢出异常(StackOverflowError)
         形成原因:  死循环调用方法。
            前几天提了关于栈溢出的一个故障单。微服务A请求微服务B资源的一个方法变成了懒加载,懒加载方法中判断当资源为空时就向微服务C请求资源,请求得到资源后,先缓存,再通微服务A去更新数据库{更新表结构时候还会向微服务B请求资源},然后再返回资源,当资源不为空时,则直接返回资源。但是当资源微服务A一直没有导入资源,上述过程就会形成一个环形结构,最后堆栈空间用完,造成栈溢出异常(StackOverflowError)。
       
        解决方法:通知微服务之前加个判断:资源为空时则不通知。


    2.内存溢出异常(OutOfMemoryError)
        形成原因:
            资源对象都缓存在单粒类对象中,客户端请求时需要做一些处理,所以处理之前要clone一下,由于对象层次太深,有一个深层次对象List<String> attribute 属性没有clone,而这个属性在客户端的每次请求中都会将list的符合条件的内容字符串用“+”连接,再放入List,请求一定次数后最后导致List的大小大约达到了2M,最终导致了内存溢出(OutOfMemoryError)
       
    解决方法:彻底的深度clone。

    ————————————————
    版权声明:本文为CSDN博主「阳德龍龘csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/miniyuyu/java/article/details/79691784

  • 相关阅读:
    Day3-spark基本认识
    团队冲刺第九天
    团队冲刺第八天
    团队冲刺第七天
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
    团队冲刺第三天
    团队冲刺第二天
    团队冲刺第一天
  • 原文地址:https://www.cnblogs.com/jzspace/p/12950272.html
Copyright © 2011-2022 走看看