Soul的SPI以及負載均衡策略研究

2022-01-13 20:52:36 字數 1083 閱讀 3648

上一節留下的幾個問題在之後進行的研究

各個外掛程式執行的時候實際上是責任鏈模式。請求分發執行的這個方法主要是soulwebhandler 繼承了spring webflux的webhandler的handle方法。handle方法中的引數正好就是請求的相關引數,然後我們就可以在外掛程式的執行邏輯內**和做操作

可以看到在資料同步的配置中,是由zkclient.subscribedatachanges來訂閱資料的改變操作,從感覺上來說,可能沒有websocket那麼明顯

soulwebhandler 繼承了spring webflux的webhandler的handle方法,springwebflux內部獲取了請求的相關屬性放入了serverwebexchange中

針對負載均衡的研究,其實我在一開始的使用的文章中就已經提到過了。因此我今天繼續嘗試了負載均衡的相關**的檢視,首先,在上一節的基礎上,我們可以知道,外掛程式是通過責任鏈模式進行執行的。而我們負載均衡這一部分是使用的 預設的divide外掛程式來執行的。在divide外掛程式的doexecute方法中,首先進行了spi的類載入,然後根據類載入的情況獲取了具體的負載均衡的策略。用來執行了具體的負載均衡策略,通過如下在spi**插入的日誌語句

通過在外掛程式執行的斷點中執行可以看出。外掛程式同時獲取了規則和選擇器的負載均衡策略。而執行那個負載均衡策略在具體的執行器中進行選擇

可以看到在random的負載均衡策略中仍然進行了選擇器權重的區分。通過類的繼承關係可以看到getweight方法被定義在模板抽象類中,同時被roundrobin和random使用,從而實現了上述的所說的在選擇器規則存在的情況下依然選擇了roundrobin負載均衡

學習筆記 Nginx tomcat負載均衡策略

nginx中.配置檔案是conf路徑下的nginx.conf檔案.開啟之後會看到nginx本身的server 服務配置.ps tomcat集群嘛.當然要至少兩個tomcat吧.所以掠過了配置兩個tomcat的過程.還有還有.沒有買伺服器操作.在本地配置了位址網域名稱.www.canmall.com ...

高效能負載均衡採用的演算法策列

前言 負載均衡演算法數量較多,而且可以根據一些業務特性進行定製開發,拋開細節上的差異,根據演算法期望達到的目的,大體上可以分為下面幾類。任務平分類 負載均衡系統將收到的任務平均分配給伺服器進行處理,這裡的 平均 可以是絕對數量的平均,也可以是比例或者權重上的平均。負載均衡類 負載均衡系統根據伺服器的...

dubbo負載均衡的策,和SSO單點登入略

1.隨機策略 類名 randomloadbalance reference timeout 3000,check false,loadbalance random private userservice userservice 2.輪詢 類名 roundrobinloadbalance refere...