SpringCloud整合Seata報錯no available server to connect. 源碼跟蹤


SpringCloud整合Seata報錯no available server to connect. 源碼跟蹤

  1. 通過控制台提示來到 NettyClientChannelManager 類中, 全局搜索 no available server to connect. 找到方法入口

在這里插入圖片描述

  1. 進入 getAvailServerList() 找到 availList 來源

    在這里插入圖片描述

  2. 通過lookup()跳轉到對應配置實現類

在這里插入圖片描述在這里插入圖片描述

  1. 通過 getAllInstances() 入口拿到所有實例

    在這里插入圖片描述

  2. 查看 serviceInfo 來源

    在這里插入圖片描述
    在這里插入圖片描述

  3. 這里面是在 serviceInfoMap 獲取的, 全局搜索下 serviceInfoMap.put() 看看在哪添加的

    在這里插入圖片描述

  4. 這里是通過第一行的 JSON.parseObject() 方法來獲取 serviceInfo 對象的, 通過IDEA的棧幀可以跳轉到該方法的前一個方法中進行查看

    在這里插入圖片描述

  5. 這里可以看到他是通過調用遠程API的方法來實現的, 一路向下找過去看看最終方法

在這里插入圖片描述在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述

  1. 到這里就可以看到我們實際發出的url了, 通過瀏覽器直接訪問, 查看該url是否有效, 再調整對應參數即可

附帶上本人另一篇博客 Nacos1.3.2 + Seata1.3.0 + MySQL8 + SpringCloud 排坑筆記, 希望能給遇到問題的小伙伴提供一點幫助

https://blog.csdn.net/CJG753951/article/details/109233010

一開始找了很多博客一直沒能解決整合的問題, 后面看了大佬的源碼分析, 自己一步步DEBUG, 看自己的配置信息具體是在哪個步驟出了問題, 才發現了問題所在. 感謝大佬提供的解決問題的思路

https://www.freesion.com/article/7552502508/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM