使用响应式框架运行 Spring Boot 应用程序时打开端口
Posted
技术标签:
【中文标题】使用响应式框架运行 Spring Boot 应用程序时打开端口【英文标题】:ports getting opened when running spring boot app with reactive framework 【发布时间】:2022-01-17 04:32:00 【问题描述】:应用程序在免费的 bsd 8.x 上运行,内部使用 netty-client 使用 spring boot webclient 库和 spring reactor 框架进行休息调用相当简单。我很确定我禁用了 Spring Boot 应用程序的服务器模式
当我在机器上运行 sockstat -l -L 时,我看到了这个输出
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
root java 1074 807 udp46 *:* *:*
root java 1074 811 udp46 *:* *:*
无法弄清楚为什么应用程序正在侦听此端口..!有人可以帮助我理解这一点。
【问题讨论】:
【参考方案1】:DNS 解析使用 UDP 来解析地址。 默认情况下侦听任何本地地址,并且系统会选择一个临时端口。您可以按照下面的代码配置到一个确切的地址:
HttpClient.create()
.resolver(spec -> spec.bindAddressSupplier(() -> new InetSocketAddress(...)));
更多信息您可以找到here 和here。
【讨论】:
以上是关于使用响应式框架运行 Spring Boot 应用程序时打开端口的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot WebFlux 2.1.7 中文翻译文档
如何在运行在 Tomcat 上的 Spring Web 应用程序中使用 Spring 的响应式 WebClient
Spring Boot (十四): 响应式编程以及 Spring Boot Webflux 快速入门
在 Angular 5 应用程序中响应 Spring Boot 时无法读取授权标头