通过Environment获取属性文件的值,竟然会调用到JNDI服务!!!| 京东云技术团队
原文中文,约5300字,阅读约需13分钟。
📝
内容提要
某应用在压测过程中CPU使用率超过80%,通过在线诊断工具发现频繁调用environment.getProperty()获取属性值,内部调用了JndiPropertySource.getProperty()。通过属性缓存和避免使用JNDI服务获取属性值,性能提升63%。JNDI是Java的命名和目录服务接口,用于管理和配置资源,但复杂且依赖环境。现代替代方案如Spring和Micronaut提供更简单灵活的资源管理方式。避免使用JNDI可通过配置、环境变量或在线诊断工具实现。