利用企业 APM 产品从您的应用中学习,发现更快、更高效的性能监控。 参加 AppDynamics APM 导览!
更多参考关于 Java 9 模块化特性带来的挑战,以及 AppDynamics 满足的严格要求以保持该领域的领先地位。
作为我们 Winter ‘17 产品发布 的一部分,我们很高兴地宣布对 Java 9 的全面支持。 Java 9 引入了一些有趣的特性,例如对 HTTP/2 的孵化器支持,以及使 G1 垃圾收集器 (GC) 成为 Java 虚拟机 (JVM) 的默认 GC。但影响所有 Java 性能监视器和分析器的最根本的变化是它的模块化支持。
具体来说,Java 9 包含一个名为“Jigsaw”的功能,它为 Java 模块系统 提供支持。 JVM 中模块的实现对我们的 Java 监控代理提出了独特的挑战,因为它进一步限制了对我们在早期 Java 版本中利用的包、类和接口的访问。可以在此处 和此处 找到有关 Java 9 模块化的良好参考。
以下是 Java 模块化功能带来的挑战,以及我们为保持该领域的领先地位而满足的严格要求: – Java 9 和旧版本的 Java 应使用相同的二进制文件(jar 文件)。从一个 Java 版本迁移到另一个时,用户不必切换代理二进制文件或修改命令行参数。
– 用户不必为 Java 9 提供额外的命令行参数。只需一个命令行参数“-javaagent”即可将 Java 代理引入 JVM。
– 保留对我们的代理动态附加到正在运行的 JVM 的支持。
– 实现应符合 Java 模块化的“精神”。监控代理应该被定义为一个命名的 Java 模块。
– 应动态获取对受限 Java 模块的访问,并且应仅限于监控代理模块。我们不应该通过过于广泛地开放访问来在 JVM 中造成完整性或安全性暴露。
– 通过允许用户不仅根据类和方法名称,而且根据模块名称选择用于检测的 Java 方法,从而利用模块化。
在监控代理中模块化支持的初始设计和实现期间,我们使用的是 Jigsaw 的早期驱动程序,事实证明,与最终出现在 Java 9 GA 版本中的功能相比,它具有更严格的功能集。如果在未来的 Java 版本中放回更严格的控制,AppDynamics Java 监视器应该准备就绪。
Java 应用程序性能监控 是 AppDynamics 提供的第一个监控解决方案,并且仍然是其旗舰产品之一。我们致力于与客户的创新和 Java 生态系统中的创新保持同步。随着我们对 Java 9 支持的实施,我们再次证明了这一承诺。我们的产品不仅提供对 Java 9 的容忍度和支持,而且在利用 Java 9 提供的新功能方面还有很长的路要走。
利用企业 APM 产品从您的应用中学习,发现更快、更高效的性能监控。 参加 AppDynamics APM 导览!
标签2: Java教程地址:https://www.cundage.com/article/jcg-appd-approach-java-9-support.html