我正在开发一个示例poc,并试图集成spring云api网关。
在我的pom.xml里
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tek</groupId>
<artifactId>gatewayApplication</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Gateway Application</name>
<description>Gateway Application for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>2021.0.3</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>在我的application.yml里
server:
port: 9191
spring:
application:
name: API-GATEWAY
cloud:
gateway:
routes:
- id: DEPARTMENT-SERVICE
uri: lb://DEPARTMENT-SERVICE
predicates:
- Path=/departments/**
- id: USER-SERVICE
uri: lb://USER-SERVICE
predicates:
- Path=/user/**在我的主课上
@SpringBootApplication
@EnableEurekaClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
}

我可以直接从它们各自的端口访问服务,但是当我尝试从端口网关端口(例如9191 )访问api时,我得到了
**2022-09-08 16:23:34.644错误4128 - ctor-http-nio-3 a.w.r.e.AbstractErrorWebExceptionHandler :7e6c1cec-3500server Error "/user/getUserDepartment/1“java.net.UnknownHostException:在reactor.core.publisher.FluxOnAssembly$OnAssemblyException的5次查询后未能解析'xxxxxxxx‘:在以下站点观察到错误: org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter⇢DefaultWebFilterChain __checkpoint⇢__checkpoint DefaultWebFilterChain __checkpoint⇢HTTP "/user/getUserDepartment/1“ExceptionHandlingWebHandler原始堆栈跟踪: at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1047) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Final at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1000) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Final at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:418) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Final at io.netty.resolver.dns.DnsResolveContext.access$600(DnsResolveContext.java:66) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Finalio.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:467) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Final at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578) ~netty-io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)-4.1.79.Final.jar:4.1.79.Final.jar:4.1.79io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550) ~nettyio.netty.util.concurrent.DefaultPromise.setFailure0(DefaultPromise.java:609) ~nettyio.netty.resolver.dns.DnsQueryContext$4.run(DnsQueryContext.java:208) ~netty-resolver-dns-4.1.79.Final.jar:4.1.79.Final at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~netty-Common-4.1.79.Final.jar:4.1.79.Final.jar:4.1.79.Final.jar:4.1.79.Final.jar:4io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~nettyio.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:503) ~netty-transport-4.1.79.Final.jar:4.1.79.Final at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~netty-Common-4.1.79.Final.jar:4.1.79.Final.jar:4.1.79.Final.jar:4.1.79.Final.jar:4io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~netty处的.1.79.Final --常见-4.1.79.Final.jar:4.1.79. timed at java.base/java.lang.Thread.run(Thread.java:834) ~na:na,由: io.netty.resolver.dns.DnsNameResolverTimeoutException: /xxxxxxx查询引起的,经过5000毫秒后超时(没有堆栈跟踪)
* Application.yml文件的DepartmentService
server:
port: 9001
spring:
application:
name: DEPARTMENT-SERVICE
eureka:
client:
register-witheureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
hostname: localhost
prefer-ip-address: true发布于 2022-09-09 13:21:22
我通过在所有使用网关服务的微服务的eureka.instance.prefer-ip-address=true和eureka.instance.prefer-ip-address=true中添加application.properties来解决这个问题。
https://stackoverflow.com/questions/73647949
复制相似问题