San*_*tta 5 service spring spring-boot microservices api-gateway
我正在使用 Spring 版本 - 2.4.5
\n应用程序属性:
\nspring.application.name = api-gateway\nserver.port = 8765\n#Had to put the below as I was facing No spring.config.import pro#perty has been defined and this has been put in currency exchang#e, currency converter and naming server as well\nspring.cloud.config.enabled=false \n\neureka.client.service-url.defaultZone = http://localhost:8761/eureka\n\nspring.cloud.gateway.discovery.locator.enabled=true\n\n#Tried the below two, but couldnt resolve the issue\neureka.instance.hostname=localhost\nspring.cloud.gateway.discovery.locator.lower-case-service-id=true\nRun Code Online (Sandbox Code Playgroud)\n所有依赖项均已正确导入。
\nPOM文件
\n<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">\n <modelVersion>4.0.0</modelVersion>\n <parent>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-parent</artifactId>\n <version>2.4.5</version>\n <relativePath/> <!-- lookup parent from repository -->\n </parent>\n <groupId>com.in28minutes.microservices</groupId>\n <artifactId>api-gateway</artifactId>\n <version>0.0.1-SNAPSHOT</version>\n <name>api-gateway</name>\n <description>Demo project for Spring Boot</description>\n <properties>\n <java.version>11</java.version>\n <spring-cloud.version>2020.0.2</spring-cloud.version>\n </properties>\n <dependencies>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-actuator</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-config</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-gateway</artifactId>\n </dependency>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>\n </dependency>\n\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-devtools</artifactId>\n <scope>runtime</scope>\n <optional>true</optional>\n </dependency>\n <dependency>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-starter-test</artifactId>\n <scope>test</scope>\n </dependency>\n </dependencies>\n <dependencyManagement>\n <dependencies>\n <dependency>\n <groupId>org.springframework.cloud</groupId>\n <artifactId>spring-cloud-dependencies</artifactId>\n <version>${spring-cloud.version}</version>\n <type>pom</type>\n <scope>import</scope>\n </dependency>\n </dependencies>\n </dependencyManagement>\n\n <build>\n <plugins>\n <plugin>\n <groupId>org.springframework.boot</groupId>\n <artifactId>spring-boot-maven-plugin</artifactId>\n </plugin>\n </plugins>\n </build>\n\n</project>\nRun Code Online (Sandbox Code Playgroud)\n但在点击 api-gateway 时仍面临以下错误:
\nhttp://localhost:8765/currency-exchange/currency-exchange/from/USD/to/INR(或)
\nhttp://localhost:8765/CURRENCY-EXCHANGE/currency-exchange/from/USD/to/INR
\n Whitelabel Error Page\nThis application has no configured error view, so you are seeing this as a fallback.\n\nSat May 08 14:03:05 IST 2021\n[d1829095-3] There was an unexpected error (type=Internal Server Error, status=500).\nfailed to resolve 'XYZ.abc.def.com' after 2 queries\njava.net.UnknownHostException: failed to resolve 'XYZ.abc.def.com' after 2 queries \n at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013)\n Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: \nError has been observed at the following site(s):\n |_ checkpoint \xe2\x87\xa2 org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]\n |_ checkpoint \xe2\x87\xa2 org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]\n |_ checkpoint \xe2\x87\xa2 HTTP GET "/CURRENCY-EXCHANGE/currency-exchange/from/USD/to/INR" [ExceptionHandlingWebHandler]\nStack trace:\n at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1013)\n at io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:966)\n at io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:414)\n at io.netty.resolver.dns.DnsResolveContext.onResponse(DnsResolveContext.java:625)\n at io.netty.resolver.dns.DnsResolveContext.access$400(DnsResolveContext.java:63)\n at io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:458)\n at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:578)\n at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:571)\n at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:550)\n at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:491)\n at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:616)\n at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:605)\n at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:104)\n at io.netty.resolver.dns.DnsQueryContext.trySuccess(DnsQueryContext.java:201)\n at io.netty.resolver.dns.DnsQueryContext.finish(DnsQueryContext.java:193)\n at io.netty.resolver.dns.DnsNameResolver$DnsResponseHandler.channelRead(DnsNameResolver.java:1264)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)\n at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)\n at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)\n at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)\n at io.netty.channel.nio.AbstractNioMessageChannel$NioMessageUnsafe.read(AbstractNioMessageChannel.java:97)\n at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)\n at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)\n at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)\n at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)\n at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n at java.base/java.lang.Thread.run(Thread.java:832)\nRun Code Online (Sandbox Code Playgroud)\n
小智 11
显然通过添加
eureka.instance.prefer-ip-address=true
eureka.instance.hostname=localhost
Run Code Online (Sandbox Code Playgroud)
在所有微服务(不包括名称服务)中都可以正常工作。
我还添加了@依赖项
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8020 次 |
| 最近记录: |