AWS Fargate - 从本地无法连接到 aws fargate 上 java 应用程序 运行 的 jmx 端口

AWS Fargate - From local Unable to connect to jmx port of java application running on aws fargate

这是我目前所做的:

  1. 我已经在 aws fargate 上部署了一个 java 11 应用程序,它已经启动并且 运行。
  2. 任务定义已正确配置为 tcp 端口映射到应用程序端口 和 jmx 端口 (3939)。
  3. 有允许我的网络和 aws 之间通信的 VPC 配置。
  4. 应用程序使用这些额外的系统属性启动 远程 jmx 连接:
    -Dcom.sun.management.jmxremote.port=3939
    -Dcom.sun.management.jmxremote.ssl=false 
    -Dcom.sun.management.jmxremote.authenticate=false
    
  5. 我可以从我的本地计算机成功远程登录到 fargate 任务的私有 IP 和 jmx 端口 3939.

但是当我尝试使用 JVisualVm 或 JDK 任务控制连接到 jmx 时,它无法连接。我在这里遗漏了什么吗?

在我添加下面提到的 属性 之后它终于起作用了,它强制 rmi 端口与 jmx 端口相同,而不是打开一个未从安全组打开的随机端口。

-Dcom.sun.management.jmxremote.rmi.port=3939

感谢这些 Whosebug 帖子:

Why Java opens 3 ports when JMX is configured?