我正在努力学习JMX。
我读过许多关于如何显式设置JMX服务器使用的端口号的博客文章。您可能知道实际上需要两个端口:一个用于注册表,另一个用于RMI协议流量。最近我发现this blog post表明两个端口可以设置为相同,这样你只需在防火墙上打一个洞。我必须承认我认为它永远不会奏效。我确信它会创建一个“套接字已绑定”异常或类似的东西。但它确实有效!
问题:
为什么会这样?为什么注册表与使用rmi协议流量的端口相同?
鉴于这是有效的,为什么我曾希望他们在不同的端口上。 (假设总是使用最新的Java7)
答案 0 :(得分:3)
从同一JVM导出的所有远程对象(包括注册表)都可以共享同一个端口。这是RMI的基本功能。
您只需要在不同的端口上使用它们,例如一个使用SSL,一个没有,或者它们在不同的JVM中