“我本地是可以的啊,为什么生产上就不行了???”

上面那句话相信大家都有说过,现在似乎已经被戏称为“程序员最大的谎言”,呵呵……我就来以我个人的遭遇来总结下教训。

场景一:单独把自己在本地编译无误,测试无误的类编译成class文件放到生产环境。

大部分情况下我们都是这么做的,本来在本地跑得好好的代码,上了生产死活跑不起来,而且还不报错……

我碰到这种情况的时候,是因为我在本地的该class文件对应的java文件里,注释了暂时还不需要上线的方法A,而方法A又调用了方法B,方法B里的代码涉及到了还未提交上线的其他类或方法。虽然在我本地编译无误,也生成了一个class文件,新功能的调用者方法A我也注释掉了,但是直接把这个class文件放到生产环境其实是编译错误的。因为生产环境的class文件还没有你的方法B里未提交的类或方法……

办法是提交你的代码,由负责升级打包的组长更新,他的对应的Java文件肯定是编译不通过的,因为方法B编译未通过。因为你还暂时不能提交B,所以他删掉你新加的(还不需要上线)功能方法A,以及它的依赖方法B,再重新打包成class文件即可。

以上,就要求到我们升级打包的规范性操作。。这种潜在的错误是很容易犯的。

场景二:确保本地环境和生产环境的jdk版本环境是一致的,因为不同jdk版本,对一些语法的支持略有差异。

场景三:本地一般是单机环境,生产环境大多数情况下都是负载均衡的,当一些缓存数据在启动的时候需要保存在内存中的时候,重启该台机器会清空内存中的缓存数据而如果需要读到该缓存数据,当还没初始化完成时,往往可能造成NullPointerException(因为初始化到缓存中需要一定时间。)。若希望不受重启影响,建议把缓存数据存放在nosql数据库中,如redis, mongodb, cassandra等,这样多台机器就共用同一个缓存中间件,任意机器的重启并不会造成缓存数据被清空,而读取缓存数据的·时候就改由从缓存中间件中读取而非内存中读取~~  项目启动的时候初始化缓存最好采用异步的方式,而不是用线程阻塞的方式。。

场景四:针对同一批数据重跑,指望跑出的数据覆盖原数据,结果发现重复。——排查表的主键是否是自动生成策略生成。

=====================持续补充=========================

本地环境可以,生产环境不行(持续补充)相关推荐

  1. .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)...

    Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟迟没有推 ...

  2. 本地开发环境与生产环境布局有偏差问题

    本地开发环境与生产环境布局有偏差问题 背景 本地开发布局时好好的,发现打包部署后有偏差,发现本地开发环境和生产环境获取的document.body.clientWidth值不一致 同个窗口大小,本地h ...

  3. python开发环境和运行环境的区别_Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  4. Java的开发环境、测试环境、生产环境、UAT环境、仿真环境

    文章目录 一.五种环境 1 开发环境(dev) 2 测试环境(test) 3 生产环境(prod) 4 UAT环境 5 仿真环境 二.测试阶段 重点了解--UT(单元测试,Unit Test) IT( ...

  5. Webpack配置区分开发环境和生产环境

    在项目开发的时候,我们通常会将程序分为开发环境和生产环境(或者叫线上环境),开发环境通常指的是我们正在开发的这个阶段所需要的一些环境配置,也就是方便我们开发人员调试开发的一种环境:生产环境通常指的是我 ...

  6. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

  7. Django 开发环境与生产环境的区分详解

    Django 开发环境与生产环境的设置 在常规的Django工程开发中,我们经常会遇到一类问题,即:本地开发环境跟远程服务器生产环境配置不一样.对于这些不同之处,以前的做法是直接修改生产环境中的配置. ...

  8. webpack开发环境和生产环境的配置区别

    1.定义: 开发环境:开发人员调试开发的一种环境: 方便调试,保持高效的开发 生产环境:发布上线的环境: 让程序在生产环境中正常有效的运行 开发环境的需求: 模块热更新 (本地开启服务,实时更新) s ...

  9. 12、区分开发环境和生产环境

    开发环境和生产环境的构建目标差异很大.在开发环境中,我们需要强大的.具有实时重新加载或热模块替换能力和本地服务器.而在生产环境中,我们目标则转向于关注更小的包,以及资源的优化,以改善加载时间.所以我们 ...

  10. 辨析:开发环境、测试环境、准生产环境、生产环境

    对于刚接触程序猿这个行业的小猿们,刚听到这些名词是不是感觉有点高大上,但是很懵逼啊,完全分不清楚,今天就以我个人的理解来给大家辨析一下这几个名词的区别. 开发环境:开发环境顾名思义就是我们程序猿自己把 ...

最新文章

  1. 还有多久才能用上2000元以下的5G手机?答案来了
  2. Mybatis---总结
  3. (转载)安全漏洞概念及分类
  4. Exchange 2007 安裝(-)
  5. ref:下一个项目为什么要用 SLF4J
  6. 项目管理(2):备战pmp
  7. 强烈推荐《价值:我对投资的思考》
  8. Python与Redis集群的交互
  9. 通用crt更新不适用计算机,KB2999226此更新不适用于您的计算机怎么办
  10. python verilog就业_[持续演进] 应届生 FPGA 就业,一点微小的看法
  11. 怎样开启无线热点服务器,在Ubuntu系统的电脑上开启无线热点全攻略
  12. 积化和差、和差化积简记
  13. Ubuntu中文件颜色的含义
  14. 1228 序列求和 (伯努利数)
  15. 通过京东技术演进和淘宝技术演进,探察未来技术和架构
  16. adb 指令集说明详解[非常详细]
  17. 大佬们抖音带货流水都过亿 普通人有什么抖音变现的好方式
  18. 前端一(HTML、CSS)
  19. 有哪些营销书籍值得推荐?市场营销人员必读书单
  20. 2015华为南研所校园招聘笔试面试经历

热门文章

  1. 教你作一份高水准的简历
  2. java语言就业方向_Java的就业方向有哪些?
  3. sqlmap之tamper脚本
  4. java 四舍六入五成双_显示格式的四舍六入五成双
  5. Ubuntu 使用 ffmpeg 将 webm 转换为 mp4 (批量)
  6. java 获取最近12个月(包含当月)
  7. 报表引擎终于做出来了!!!!!参考了根兄的文档。
  8. 北师大计算机学院保研,北师大信息科学与技术学院保研-北京师范大学信息科学与技术学院保研推荐免试研究生方法...
  9. win10电脑连接蓝牙请检查PIN并重新连接
  10. 物联网云平台—物联网背后的掌舵者?