一、问题描述

两台服务器,其中third单独一台,可以看到正常注册到nacos,但是请求报错
在这里插入图片描述

查看gateway的日志文件

2021-11-14 13:41:16.367  INFO 1409 --- [erListUpdater-0] c.netflix.config.ChainedDynamicProperty  : Flipping property: third.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
2021-11-14 13:41:45.631 ERROR 1409 --- [or-http-epoll-4] a.w.r.e.AbstractErrorWebExceptionHandler : [ca9b144a-1]  500 Server Error for HTTP GET "xxxxx"

io.netty.channel.ConnectTimeoutException: connection timed out: /172.25.204.157:8082
	at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$2.run(AbstractEpollChannel.java:576) ~[netty-transport-native-epoll-4.1.55.Final-linux-x86_64.jar!/:4.1.55.Final]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ org.springframework.web.cors.reactive.CorsWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP GET "xxxxxxxx" [ExceptionHandlingWebHandler]
Stack trace:
		at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$2.run(AbstractEpollChannel.java:576) ~[netty-transport-native-epoll-4.1.55.Final-linux-x86_64.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:170) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384) ~[netty-transport-native-epoll-4.1.55.Final-linux-x86_64.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.55.Final.jar!/:4.1.55.Final]
		at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

大致意思说是请求超时,然后看到访问的局域网内的一个地址,证明是没有找到服务的公网地址,当然这个要在gateway路由正确的情况之下判断,路由不正确报的错应该是404,而不是500

参考:https://sns.bladex.vip/question/answer/1233/1231.html

二、问题解决

解决办法就是配置third服务的注册地址,见yml配置文件

spring:
  # Nacos服务注册中心地址,注册服务
  cloud:
    nacos:
      discovery:
        server-addr: xxxx
        ip: 这个需要配置一下
        port: 服务端口号也要配置一下

测试

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐