当前位置: 代码迷 >> 综合 >> 阿里巴巴 Java 开发手册--学习(四)
  详细解决方案

阿里巴巴 Java 开发手册--学习(四)

热度:80   发布时间:2023-09-19 15:39:54.0

工程结构

    工程结构之应用分层

         1、( 分层异常处理规约 ) 在 DAO 层,产生的异常类型有很多,无法用细粒度的异常进行 catch ,使用    catch(Exception e) 方式,并 throw new DAOException(e) ,不需要打印日志,因为日志在 Manager / Service 层一定需要捕获并打到日志文件中去,如果同台服务器再打日志,浪费性能和存储。在 Service 层出现异常时,必须记录出错日志到 磁盘,尽可能带上参数信息,相当于保护案发现场。

工程结构之二方库依赖

         1、定义 GAV 遵从以下规则:

            1) GroupID 格式: com.{公司/BU }.业务线.[子业务线],最多 4 级。
说明: {公司/BU} 例如: alibaba/taobao/tmall/aliexpress 等 BU 一级; 子业务线可选。
正例: com.taobao.jstorm 或 com.alibaba.dubbo.register
            2) ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。
正例: dubbo-client / fastjson-api / jstorm-tool
            3) Version:二方库版本号命名方式:主版本号.次版本号.修订号

        2、赖于一个二方库群时,必须定义一个统一的版本变量,避免版本号不一致。

工程结构之服务器

         1、 高并发服务器建议调小 TCP 协议的 time_wait 超时时间。

        2、调大服务器所支持的最大文件句柄数

        3、给 JVM 设置-XX:+HeapDumpOnOutOfMemoryError 参数,让 JVM 碰到 OOM 场景时输出dump 信息。

        4、在线上生产环境, JVM 的 Xms 和 Xmx 设置一样大小的内存容量, 避免在 GC 后调整堆大小带来的压力。    

        5、    服务器内部重定向使用 forward; 外部重定向地址使用 URL 拼装工具类来生成, 否则会带来 URL 维护不一致的问题和潜在的安全风险。

  相关解决方案