当前位置: 首页 > 知识库问答 >
问题:

Spring Gateway和Eureka的名称解析失败

冀阳文
2023-03-14

日安,

    null

问题:

当网关有一个持有微服务IP地址的路由时,所有的路由都可以顺利运行。但我想要的是让网关解析来自Eureka服务器的服务ID。如果我这样做,它会抛出java.net.unknownHostException:my-micro-service:name resoultion中的临时失败

问题:

@SpringBootApplication
@EnableEurekaClient
public class MyGatewayApplication {

  public static void main(String[] args) {
    SpringApplication.run(MyGatewayApplication.class, args);
  }
}
spring:
  application:
    name: my-gateway
  cloud:
    gateway:
      discovery:
        locator:
          lowerCaseServiceId: true
          enabled: true
      globalcors:
        corsConfigurations:
          '[/**]':
            allowedOrigins: "*"
            allowedMethods:
              - GET
              - POST
      routes:
        - id: my_route
          uri: http://MY-MICRO-SERVICE
          predicates:
            - Path=/test/**
server:
  port: 8999

info:
  app:
    properties: dev

错误

java.net.UnknownHostException: MY-MICRO-SERVICE: Temporary failure in name resolution
    at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:na]
    at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929) ~[na:na]
    at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1515) ~[na:na]
    at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364) ~[na:na]
    at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298) ~[na:na]
    at java.base/java.net.InetAddress.getByName(InetAddress.java:1248) ~[na:na]
    at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:146) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
...

共有1个答案

商迪
2023-03-14

问题已经解决。

我将“HTTP”更改为“LB”协议,这就解决了我的问题。根据我的理解,“LB”代表负载平衡。我的本地机器上没有活动的loadbalancer,但无论如何:这是有效的。

   - POST
      routes:
        - id: my_route
          uri: lb://MY-MICRO-SERVICE
          predicates:
            - Path=/test/**
 类似资料:
  • 我正在使用Client编写一个Eureka客户端应用程序。这是我的POM 如您所见,我使用的是spring boot版本

  • 我正在尝试使用Spring Cloud的Open Faign调用另一个服务,但我一直得到以下回应: 这是我的密码: 我已将Faign配置为使用OkHttp客户端,但我不确定它是否对错误负责:

  • 我开始使用Grpc框架来实现客户机/服务器之间的一些通信,但我遇到了这个异常: rpc.core.rpcException:'statuscode=unavailable,detail=“Name resolution failure)' 谁能告诉我出了什么问题吗?为什么我无法连接到服务器? 堆栈: 在system.runtime.exceptionServices.exceptionDispat

  • 我需要提取以下html https://ndb.nal.usda.gov/ndb/search/list中列出的所有食品的ID和mfg.name 我正在使用Jsoup并且对它很陌生。

  • 问题内容: 我一直在尝试导入以下Web服务:http : //soap.genome.jp/KEGG.wsdl和$ {JAVA_HOME} / bin / wsimport: 但出现以下错误: 问题是来自WSDL还是来自wsimport的实现?我应该使用其他工具吗? 谢谢 皮埃尔 问题答案: 我从此错误报告中发现了(显然是)解决方法:https : //netbeans.org/bugzilla/

  • 我面对这个问题: 无法解析符号sqlite_sequence无法解析符号名称 此问题在迁移到AndroidX后发生。 虽然在调试/开发期间应用程序运行良好,但当我尝试生成签名的APK时,它导致了这个问题,并且无法解决。 下面是分析的结果