2016年由于公司软件架构开始转向微服务,并且采用kubernetes作为微服务的部署平台,而从那时起作为底层框架开发人员,我便开始深受HotSpot虚拟机在docker中运行时,内存占用过大的问题的困扰,最后我在内心得出了一个结论:用java开发的微服务,从某种意义上来说不能称作“微服务”。
直到在infoQ上看到了“JavaOne 2016:IBM主题演讲 – Java革新大提速”,其中如下的描述,让我看到了解决的希望。
IBM还公布了一个适用于IBM Java SDK的Docker镜像,以及一个痕迹占用更低的Java:“SFJ”。随后Duimovich宣布了一个当天最劲爆的新闻:IBM计划将适用于Java 9的J9 VM全面开源。
就这样又等了几个月,2017年9月IBM终于在Eclipse基金会开源了OpenJ9,刚开源时OpenJ9只支持java 9,同时在2018年,OpenJ9贴心的推出了对java 8 的支持,这样完全解除了我在公司推广其的顾虑。
经过几个月的使用,OpenJ9果然不负众望,公司众多微服务内存都得到了明显的下降,为了让更多的Javaer享受到OpenJ9的福利,我打算在这里从一个使用者的角度,介绍openJ9的各个方面和自己使用的心得。