Nacos和GateWay路由轉發NotFoundException: 503 SERVICE_UNAVAILABLE “Unable to find

問題再現:?

2023-08-15 16:51:16,151 DEBUG [reactor-http-nio-2][CompositeLog.java:147] - [dc73b32c-1] Encoding [{timestamp=Tue Aug 15 16:51:16 CST 2023, path=/content/course/list, status=503, error=Service Unavai (truncated)...]
2023-08-15 16:51:16,175 TRACE [reactor-http-nio-2][GatewayMetricsFilter.java:115] - gateway.requests tags: [tag(httpMethod=POST),tag(httpStatusCode=503),tag(outcome=SERVER_ERROR),tag(routeId=content-api),tag(routeUri=lb://content-api),tag(status=SERVICE_UNAVAILABLE)]
2023-08-15 16:51:16,187 DEBUG [reactor-http-nio-2][Loggers.java:254] - [id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113] Decreasing pending responses, now 0
2023-08-15 16:51:16,190 DEBUG [reactor-http-nio-2][Loggers.java:249] - [id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113] Last HTTP packet was sent, terminating the channel
2023-08-15 16:51:16,192 DEBUG [reactor-http-nio-2][LogFormatUtils.java:91] - [dc73b32c-1] Completed 503 SERVICE_UNAVAILABLE
2023-08-15 16:51:16,195 DEBUG [reactor-http-nio-2][Loggers.java:249] - [id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113] Last HTTP response frame
2023-08-15 16:51:16,203 DEBUG [reactor-http-nio-2][Loggers.java:254] - [id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113] FluxReceive{pending=0, cancelled=true, inboundDone=false, inboundError=null}: dropping frame DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 53, cap: 53/53, unwrapped: PooledUnsafeDirectByteBuf(ridx: 296, widx: 296, cap: 2048)), decoderResult: success)
2023-08-15 16:51:16,205 DEBUG [reactor-http-nio-2][Loggers.java:259] - [id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113] onUncaughtException(SimpleConnection{channel=[id: 0xdc73b32c, L:/127.0.0.1:63010 - R:/127.0.0.1:53113]})
java.io.IOException: 遠程主機強迫關閉了一個現有的連接。
?? ?at sun.nio.ch.SocketDispatcher.read0(Native Method)
?? ?at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
?? ?at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
?? ?at sun.nio.ch.IOUtil.read(IOUtil.java:192)
?? ?at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)
?? ?at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253)
?? ?at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1134)
?? ?at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:350)
?? ?at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:151)
?? ?at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
?? ?at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
?? ?at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
?? ?at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
?? ?at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
?? ?at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
?? ?at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
?? ?at java.lang.Thread.run(Thread.java:750)
2023-08-15 16:51:16,432 DEBUG [com.alibaba.nacos.naming.failover][FailoverReactor.java:147] - failover switch is not found, failover00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00
2023-08-15 16:51:17,002 DEBUG [PollingServerListUpdater-0][PropertySourcesPropertyResolver.java:115] - Found key 'spring.profiles.active' in PropertySource 'configurationProperties' with value of type String
2023-08-15 16:51:17,003 DEBUG [PollingServerListUpdater-0][HostReactor.java:306] - failover-mode: false
2023-08-15 16:51:17,003 DEBUG [PollingServerListUpdater-0][DynamicServerListLoadBalancer.java:241] - List of Servers for content-api obtained from Discovery client: []
2023-08-15 16:51:17,003 DEBUG [PollingServerListUpdater-0][DynamicServerListLoadBalancer.java:246] - Filtered List of Servers for content-api obtained from Discovery client: []

問題前提的環境配置:

首先我的nacos上都已經成功注冊上了兩個服務

其中Gateway的nacos上的配置和本地的配置分別為

server:port: 63010 # 網關端口
spring:cloud:gateway:discovery:locator:lowerCaseServiceId: true# 讓gateway根據注冊中心找到其他服務enabled: trueroutes: - id: content-api # 路由id,自定義,只要唯一即可uri: lb://content-api # 路由的目標地址 lb就是負載均衡,后面跟服務名稱predicates: # 路由斷言,也就是判斷請求是否符合路由規則的條件- Path=/content/** # 這個是按照路徑匹配,只要以/content/開頭就符合要求- id: system-apiuri: lb://system-apipredicates:- Path=/system/**
#微服務配置
spring:application:name: gatewaycloud:nacos:server-addr: 192.168.101.65:8848discovery:namespace: ${spring.profiles.active}group: EducationPlatform-projectconfig:namespace: ${spring.profiles.active}group: EducationPlatform-projectfile-extension: yamlrefresh-enabled: trueshared-configs:- data-id: logging-${spring.profiles.active}.yamlgroup: EducationPlatform-commonrefresh: trueprofiles:active: dev11

而content-api的nacos上的配置和本地的配置分別為

server:servlet:context-path: /contentport: 63040test_config:a: 3ab: 3b#配置本地優先
spring:cloud:config:override-none: true
#微服務配置
spring:application:name: content-apicloud:nacos:server-addr: 192.168.101.65:8848discovery:namespace: ${spring.profiles.active}group: EducationPlatformusername: nacospassword: nacosconfig:namespace: ${spring.profiles.active}group: EducationPlatformfile-extension: yamlrefresh-enabled: trueextension-configs:- data-id: content-service-${spring.profiles.active}.yamlgroup: EducationPlatformrefresh: trueshared-configs:- data-id: swagger-${spring.profiles.active}.yamlgroup: EducationPlatform-commonrefresh: true- data-id: logging-${spring.profiles.active}.yamlgroup: EducationPlatform-commonrefresh: trueprofiles:active: dev11

?而發送了一個這個請求

問題解決:

首先可以在idea里快速的按兩下shift,然后搜這個方法名,打個斷點看看方法能不能送到這里來,可以看到我這的uri已經是有了的,證明配置和服務都沒有問題,問題縮小到路由轉發出了問題。

其次這兩個問題報錯也讓我們要注意的問題就是轉發問題

Zone aware logic disabled or there is only one zone

NotFoundException: 503 SERVICE_UNAVAILABLE "Unable to find instance for content-api

一、pom配置

因為路由轉發配置上用到了lb:,這個是負載均衡的標志,而在Spring Cloud 2020版本以后,就移除了Ribbon負載均衡器,官方默認推薦使用Spring Cloud Loadbalancer正式替換Ribbon。因此我們需要把Spring Cloud Loadbalancer加載到pom里面

<!--客戶端負載均衡loadbalancer--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId><optional>true</optional></dependency>

實在不行的再加載這兩個?

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

二、小細節

我是加上了pom都還不行的,而后面發現我的group是不同的,在nacos中group的作用就是區分不同類型的配置文件,進行分組管理

?相同Data Id而不同Group的意義就在相當于相同的目錄下不同的文件,不同group直接的服務調用是只能通過額外config里配置

?因此解決辦法就是把nacos中的group的后綴都改成-project,本地配置中的也改了然后實在不行的話Gateway配置上再添加上lowerCaseServiceId: true

重啟服務即可

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode27—移除元素

思路&#xff1a; 參考26題目雙指針的思想&#xff0c;只不過這道題不是快慢指針。 看到示例里面數組是無序的&#xff0c;也就是說后面的元素也是可能跟給定 val值相等的&#xff0c;那么怎么處理呢。就想到了從前往后遍歷&#xff0c;如果left對應的元素 val時&#xff0c…

汽車制造業上下游協作時 外發數據如何防泄露?

數據文件是制造業企業的核心競爭力&#xff0c;一旦發生數據外泄&#xff0c;就會給企業造成經濟損失&#xff0c;嚴重的&#xff0c;可能會帶來知識產權剽竊損害、名譽傷害等。汽車制造業&#xff0c;會涉及到重要的汽車設計圖紙&#xff0c;像小米發送汽車設計圖紙外泄事件并…

[足式機器人]Part5 機械設計 Ch00/01 緒論+機器結構組成與連接 ——【課程筆記】

本文僅供學習使用 本文參考&#xff1a; 《機械設計》 王德倫 馬雅麗課件與日常作業可登錄網址 http://edu.bell-lab.com/manage/#/login&#xff0c;選擇觀摩登錄&#xff0c;查看2023機械設計2。 機械設計-Ch00Ch01——緒論機器結構組成與連接 Ch00-緒論0.1 何為機械設計——…

12.Eclipse導入Javaweb項目

同事復制一份他的項目給我ekp.rar (懶得從SVN上拉取代碼了)放在workspace1目錄下 新建一個文件夾 workspace2&#xff0c;Eclipse切換到workspace2工作空間 選擇Import導入 選擇導入的項目(這里是放到workspace1里面) 拷貝一份到workspace2里面 例子 所有不是在自己電腦上開發…

可白嫖的4家免費CDN,并測試其網絡加速情況(2023版)

網站加載速度優化過程中&#xff0c;不可避免的會用上CDN來加速資源的請求速度。但是市面上的CDN資源幾乎都是要收費的&#xff0c;而且價格還不便宜&#xff0c;對于小公司站長來講&#xff0c;這將是一筆不小的開銷。不過還是有一些良心公司給我們提供了免費的資源&#xff0…

ZooKeeper的基本概念

集群角色 通常在分布式系統中&#xff0c;構成一個集群的每一臺機器都有自己的角色&#xff0c;最典型的集群模式就是Master/Slave模式(主備模式)。在這種模式中&#xff0c;我們把能夠處理所有寫操作的機器稱為Master機器&#xff0c;把所有通過異步復制方式獲取最新數據&…

Redis_億級訪問量數據處理

11. 億級訪問量數據處理 11.1 場景表述 手機APP用戶登錄信息&#xff0c;一天用戶登錄ID或設備ID電商或者美團平臺&#xff0c;一個商品對應的評論文章對應的評論APP上有打卡信息網站上訪問量統計統計新增用戶第二天還留存商品評論的排序月活統計統計獨立訪客(Unique Vistito…

【BEV】3D視覺 PRELIMINARY

這里的知識來自于論文 Delving into the Devils of Bird’s-eye-view Perception: A Review, Evaluation and Recipe 的 Appendix B.1 部分來自 這篇文章 從透視圖轉向鳥瞰圖。&#xff08;Xw、Yw、Zw&#xff09;、&#xff08;Xc、Yc、Zc&#xff09;表示世界World坐標和相…

Android學習之路(4) UI控件之Button (按鈕)與 ImageButton (圖像按鈕)

本節引言&#xff1a; 今天給大家介紹的Android基本控件中的兩個按鈕控件&#xff0c;Button普通按鈕和ImageButton圖像按鈕&#xff1b; 其實ImageButton和Button的用法基本類似&#xff0c;至于與圖片相關的則和后面ImageView相同&#xff0c;所以本節 只對Button進行講解&am…

vue自定義穿梭框支持遠程滾動加載

分享-2023年資深前端進階&#xff1a;前端登頂之巔-最全面的前端知識點梳理總結&#xff0c;前端之巔 *分享一個使用比較久的&#x1fa9c; 技術框架公司的選型(老項目)&#xff1a;vue2 iview-ui 方案的實現思路是共性的&#xff0c;展現UI樣式需要你們自定義進行更改&#…

【注解使用】使用@Autowired后提示:Field injection is not recommended(Spring團隊不推薦使用Field注入)

問題發生場景&#xff1a; 在使用 IDEA 開發 SpringBoot 項目時&#xff0c;在 Controller 類中使用注解 Autowired 注入一個依賴出現了警告提示&#xff0c;查看其他使用該注解的地方同樣出現了警告提示。這是怎么回事&#xff1f;由于先去使用了SpringBoot并沒有對Spring進行…

分布式 - 消息隊列Kafka:Kafka消費者和消費者組

文章目錄 1. Kafka 消費者是什么&#xff1f;2. Kafka 消費者組的概念&#xff1f;3. Kafka 消費者和消費者組有什么關系&#xff1f;4. Kafka 多個消費者如何同時消費一個分區&#xff1f; 1. Kafka 消費者是什么&#xff1f; 消費者負責訂閱Kafka中的主題&#xff0c;并且從…

【數據結構OJ題】反轉鏈表

原題鏈接&#xff1a;https://leetcode.cn/problems/reverse-linked-list/description/ 目錄 1. 題目描述 2. 思路分析 3. 代碼實現 1. 題目描述 2. 思路分析 方法一&#xff1a;三指針翻轉法 使用三個結構體指針n1&#xff0c;n2&#xff0c;n3&#xff0c;原地修改結點…

VSCode如何設置高亮

一、概述 本文主要介紹在 VSCode 看代碼時&#xff0c;怎樣使某個單詞高亮顯示&#xff0c;主要通過以下三步實現&#xff1a; 安裝 highlight-words 插件 配置 highlight-words 插件 設置高亮快捷鍵F8 工作是嵌入式開發的&#xff0c;代碼主要是C/C的&#xff0c;之前一直用…

【Linux】高級IO

目錄 IO的基本概念 釣魚五人組 五種IO模型 高級IO重要概念 同步通信 VS 異步通信 阻塞 VS 非阻塞 其他高級IO 阻塞IO 非阻塞IO IO的基本概念 什么是IO&#xff1f; I/O&#xff08;input/output&#xff09;也就是輸入和輸出&#xff0c;在著名的馮諾依曼體系結構當中…

ROS學習筆記(三)---好用的終端Terminator

ROS學習筆記文章目錄 01. ROS學習筆記(一)—Linux安裝VScode 02. ROS學習筆記(二)—使用 VScode 開發 ROS 的Python程序&#xff08;簡例&#xff09; 一、Terminator是什么&#xff1f; 在前面的學習中&#xff0c;為了運行hello.py我是在vscode頻繁的點擊運行窗口的“”號…

智谷星圖趙俊:讓人才和區塊鏈產業“雙向奔赴”丨對話MVP

區塊鏈產業需要什么樣的人才&#xff1f;趙俊很有發言權。 趙俊是北京智谷星圖科技有限公司的技術總監&#xff0c;也是FISCO BCOS官方認證講師。他2017年接觸區塊鏈&#xff0c;隨后選擇人才培育領域深耕。“為區塊鏈行業引進更多人才這件事很有價值&#xff0c;跟我的職業理…

菜單和內容滾動的聯動原理及代碼

之前寫代碼有個需求&#xff1a;左側是一個菜單&#xff0c;右邊是內容&#xff0c;點擊左側菜單右邊內容滾動到對應位置&#xff0c;右邊內容滾動到某位置時&#xff0c;左側菜單也會選中對應的菜單項。UI如下&#xff1a;這是大多網站的移動端都會有的需求。 解決方案一&…

高憶管理:什么是一碼通?有什么好處?

在經過券商開戶后&#xff0c;除了其間的財物賬戶、滬深股賬戶外&#xff0c;還有一個一碼通賬戶&#xff0c;什么是一碼通&#xff1f;它有什么好處&#xff1f;關于這些&#xff0c;高憶管理為大家預備了以下參閱內容。 什么是一碼通&#xff1f; 一碼通賬戶&#xff0c;一般…

CSDN編程題-每日一練(2023-08-15)

CSDN編程題-每日一練(2023-08-15) 一、題目名稱:新型美麗數列二、題目名稱:會議安排三、題目名稱:小豚鼠搬家一、題目名稱:新型美麗數列 時間限制:1000ms內存限制:256M 題目描述: 定義美麗數列A: 1. 數列中相鄰的數越是靠內相對大小加一,a[2]=a[1]+1,a[n-2]=a[n-1]+1…