用户工具


保持逻辑简单,语义清晰

函数注意事项

对象注意事项

  • 一个对象在构建时必须检查自己是否合法,如果自己不合法,则构建失败。
    • 可能构建失败的对象一般返回一个Optional类型的对象
  • 所以一个对象存在,则必须可用,否则不应该存在

fast fail原则

  • 保证函数快速失败:把错误影响控制在最小范围内
  • 如果有出现(java.lang.OutOfMemoryError: GC overhead limit exceeded)
    • 说明程序内存马上不够用了,应该立马退出,不要硬撑着,由于内存不够会一直触发gc,导致程序执行的很慢很慢…

异常处理机制

配置文件机制

日志监控策论

正常日志滚动保存,错误日志永久保持直到被处理处理

健壮性

  • 超时重试机制(长用于数据库连接)
  • 连接断开重连机制
  • 线程监控,线程挂掉之后自动重启机制
  • 每个资源类必须提供一个clean函数释放资源(redis连接等等)

资源使用释放机制

  • 一个线程使用一个连接,线程退出后连接退出(个人觉得没必要新建一个连接池,每次create一个连接有close一个连接)

测试

性能优化

  • 将程序种耗时的部分分离出来
    • 比如异步持久化
  • 多用future机制
    • 最好加上超时重试机制

监控机制.报警

  • zabbix
    • 内存监控
    • 进程死掉
    • 进程假死(程序还在,但是没有运行)
      • 检测心跳是否停止
    • 第三方组件短时间内大量超时(数据库连接)
      • 最近10分钟内超时次数大于某值
  • influxdb
    • qps
    • request time

预热机制

可能时候可能需要提前预热

  • 提前加载缓存
  • 提前初始化数据库连接

其他