在我们的应用程序中,使用基于Netty的自有命令分发系统解决了远程过程调用问题。我们有很多模块(约20个),我想在单独的JVM中运行所有模块。我的问题是,每个JVM的RMI会生成约17个线程,但据我所知,我根本不需要使用RMI。我能否完全禁用JVM的RMI?或者至少以不使用这么多线程的方式进行配置?
您很可能正在使用监控应用程序查看您的JVM,对吗?嗯:这些监控应用程序使用 RMI。因此,您将始终在监控应用程序、分析器等中看到RMI线程。您还将始终看到它们使用一定量的CPU时间。就像收集分析信息无法在未通过RMI将这些信息传输(到您的工具)的情况下完成一样。您可以实现自己的传输协议并指示管理bean使用它,但我怀疑您是否可以节省足够的资源以弥补开发成本。如果您不使用任何RMI,则RMI不会启动任何线程。但是,如果您正在使用它,即使您不知道这一点,禁用RMI意味着您的软件将无法正常工作。