当您的应用部署到EDAS后,可能会遇到在代码中配置了Tomcat端口却不生效的现象,可参考此文档解决。

问题现象

当您的应用部署到EDAS后,可能会遇到以下类似问题。

  • 为什么我的SpringBoot应用,在application.properties文件中配置的Tomcat端口不生效?
  • 为什么我在控制台修改了Tomcat端口后,在机器上查看时,发现监听在此端口的并不是Tomcat进程?

现象分析

其实这些是正常现象,是EDAS实现流量灰度功能的需要。

在EDAS中,所有使用了流量灰度的应用,服务请求都是先经过Tengine,然后再由Tengine转发到Tomcat。

为了使得Tengine能够顺利找到Tomcat的端口,所以在使用了Tengine的情况下,EDAS将Tomcat端口固定成了65000。形如如下配置:

server.port=28082        

端口其实还是65000,因为我们在启动参数中默认添加了--server.port=65000。所以观察Tomcat是否启动成功时,需要注意,Tomcat是监听在65000端口的。

同样的,修改应用端口其实修改的是Tengine的端口,形如以下配置:

修改Tengine 的端口

虽然将Tengine的端口改成了8080,但Tomcat的端口仍为65000。