當前位置:編程學習大全網 - 網站源碼 - 源碼分析 dynamic-datasource-spring-boot-starter 組件負載均衡策略

源碼分析 dynamic-datasource-spring-boot-starter 組件負載均衡策略

dynamic-datasource-spring-boot-starter 組件自帶了兩個負載均衡算法 1 :

其中輪詢是默認算法。

這兩個算法類都實現了 DynamicDataSourceStrategy 接口:

所以如果需要自定義負載均衡算法,就可以實現DynamicDataSourceStrategy 接口。該接口只定義了壹個determineDataSource方法,用於決定多個數據源的選擇策略:

(1)輪詢算法

這裏利用 AtomicInteger 類創建了壹個線程安全 2 的 Integer作為計數器,默認為 0。

然後在 determineDataSource 實現方法中,利用 AtomicInteger#getAndAdd() 累加該計算器,接著把結果值除以數據源總數,求余數。

這裏的 Math.abs() 似乎沒有必要,因為被除數與除數肯定大於 0。

可以改造如下:

(2)隨機算法

這裏使用了ThreadLocalRandom 來生成線程安全的隨機數 3 ,current() 方法是其靜態工廠。

  • 上一篇:文華財經分時價格虛線怎麽調整?
  • 下一篇:求成交量在30日均線下方,下跌在-5%以上,換手率4%以下,當日股價下穿233日均線的大陰線代碼。
  • copyright 2024編程學習大全網