Java版AWS Lambda每次调用无法生成新实例的问题及解决方法
Java AWS Lambda实例复用引发动态编译缓存问题的解决办法
背景
需要Java版AWS Lambda每次被调用时都使用全新运行环境的实例,但Lambda默认会复用已创建的实例。
尝试过的无效操作
设置环境变量AWS_LAMBDA_INITIALIZATION_TYPE="on-demand",但未实现每次调用创建新实例的目标。
最终解决方案
没有试图修改Lambda的实例初始化逻辑,而是从底层业务场景入手解决问题:
使用net.openhft CachedCompiler动态编译源码文本获取Java类时,源码变更后依然返回缓存的旧类。通过更换类加载器的方式,强制每次调用时重新编译源码并构建全新的类对象,彻底解决了缓存导致的业务异常。
内容的提问来源于stack exchange,提问作者Prashant Priyadarshi
相关产品推荐
相关产品推荐

