Soul網關默認Divide插件的使用

Divide插件的使用

上一篇已經說到,Soul網關代理了咱們自定義的一個SpringBoot服務。
這一篇。咱們就來嘗試下如何實現網關的默認的Divide插件提供的負載均衡功能(好像也只能根據匹配的規則提供負載均衡的功能)
file
此選擇器爲我SpringBoot服務啓動並鏈接到soul-admin以後默認生成的,可是由此產生了一個問題,當個人應用下線以後,這個選擇器和選擇器規則並無下線?有待後續的研究。
同時觀察表單元素。參閱Soul文檔,發現有以下選擇器規則git

  • 類型:custom flow 是自定義流量。full flow 是全流量。自定義流量就是請求會走你下面的匹配方式與條件。全流量則不走。github

  • 匹配方式:and 或者or 是指下面多個條件是按照and 仍是or的方式來組合。
    條件:面試

  • uri:是指你根據uri的方式來篩選流量,match的方式支持模糊匹配(/**)正則表達式

  • header:是指根據請求頭裏面的字段來篩選流量。小程序

  • query: 是指根據uri的查詢條件來進行篩選流量。微信

  • ip:是指根據你請求的真實ip,來篩選流量。restful

  • host:是指根據你請求的真實host,來篩選流量。負載均衡

  • post:建議不要使用。
    條件匹配:
    match : 模糊匹配,建議和uri條件搭配,支持 restful風格的匹配。(/test/**)
    = : 先後值相等,才能匹配。
    regEx : 正則匹配,表示前面一個值去匹配後面的正則表達式。
    like :字符串模糊匹配。dom

    可是官方文檔中,並未給出創造了Post這種篩選方式,可是仍然不建議使用的緣由,期待後續的源碼的閱讀能找到答案ide

另外在divide插件首頁咱們能夠看到,咱們能夠添加除了默認生成的規則以外的規則

最後實踐一下根據uri匹配的負載均衡,啓動多個客戶端程序,看看請求被轉發到那個服務上,能夠看到不一樣負載策略的不一樣表現
同時咱們在選擇器表單框內,能夠看到隨着多個客戶端程序的使用,增長了配置的狀況
file
另外,此處的weight權重策略和選擇器規則策略誰起做用?能夠試下。
將選擇器配置策略調整爲50,50 。選擇器均衡規則調整爲random。
若是選擇器規則優先,那麼應該兩個客戶端每一個客戶端接收一個請求,若是均衡規則優先。那麼能夠獲得隨機的請求,接下來咱們試下
file
file
能夠看到當一個選擇器和選擇器規則同時知足條件時,以粒度更小的選擇器規則均衡策略爲準。關於這個是如何實現的,期待後續經過源碼進行了解

問題

  • 當個人應用下線以後,這個默認選擇器和選擇器規則並無下線?這個有什麼其餘的考量嗎?
  • post篩選條件被創造,但又不建議使用的緣由?
  • 選擇器配置權重規則和負載規則的源碼實現

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

file
file

相關文章
相關標籤/搜索