Soul網關插件之Spring Cloud

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

出現這個錯誤的主要原因是因爲。soul-examples裏面的springcloud插件項目使用的默認註冊中心是eureka,pom文件中也是eureka。即使yml中配置文件修改了也沒用。因此需要講示例中心中的pom依賴修改爲nacos的依賴。重啓即可解決問題

正常啓動情況下,被代理接口的訪問

註冊成功後,被成功代理的接口列表
file
正常代理的單個接口的訪問
file
通配符代理的接口的訪問,主要是要符合通配的格式要求

  • 如果含有 /** 代表你的整個接口需要被網關代理
    另外,在配置文件中如果增加了soul.springcloud.full=true即可代理全部接口
    file
    可以看到被代理接口增加了超時時間的選擇

隨後啓動多個端口不同的示例項目,發現選擇器中並沒有注入這些項目,懷疑並沒有在網關層做負載均衡,後續源碼階段可以一探究竟

另一個可以關注的點:元數據

其他的許多中間件和插件也都有元數據的概念,掌握Soul裏的元數據的概念對我們理解其他中間件的元數據的使用應該也會很有幫助。同時,學習使用Soul在元數據操作上的經驗
file

另一個可以關注的點:插件處理管理

file
看列表數據可以看到這裏的字段值對應的某種規則。後續源碼解讀可以理解這一塊的邏輯和處理思路。可以嘗試着自己自定義一個這樣的插件處理管理的規則

問題

  • 代理Spring Cloud時沒有做負載均衡的操作。負載均衡由springCloud組件來完成

歡迎搜索關注本人與朋友共同開發的微信面經小程序【大廠面試助手】和公衆號【微瞰技術】,以及總結的分類面試題https://github.com/zhendiao/JavaInterview

file
file

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章