熟练使用 Elastic Job系列之作业分片策略(五)
自帶的分片策略
框架默認提供了三種分片策略,所有的分片策略都是接口JobShardingStrategy的實現?
AverageAllocationJobShardingStrategy
全類路徑:?io.elasticjob.lite.api.strategy.impl.AverageAllocationJobShardingStrategy
策略說明:
OdevitySortByNameJobShardingStrategy
全類路徑:?io.elasticjob.lite.api.strategy.impl.OdevitySortByNameJobShardingStrategy
策略說明:
AverageAllocationJobShardingStrategy VS OdevitySortByNameJobShardingStrategy
AverageAllocationJobShardingStrategy的缺點是,一旦分片數小于作業服務器數,作業將永遠分配至IP地址靠前的服務器,導致IP地址靠后的服務器空閑。而OdevitySortByNameJobShardingStrategy則可以根據作業名稱重新分配服務器負載。如:
如果有3臺服務器,分成2片,作業名稱的哈希值為奇數,則每臺服務器分到的分片是:1=[0], 2=[1], 3=[]
如果有3臺服務器,分成2片,作業名稱的哈希值為偶數,則每臺服務器分到的分片是:3=[0], 2=[1], 1=[]
RotateServerByNameJobShardingStrategy
全類路徑:?io.elasticjob.lite.api.strategy.impl.RotateServerByNameJobShardingStrategy
策略說明:
根據作業名的哈希值對服務器列表進行輪轉的分片策略。
運維平臺與分片
回到熟練使用 Elastic Job系列之入門Demo(三)?文章的實例demo, 在項目中有通過sharding-total-count=來設置作業分片數, 如圖所示,??從配置中可以知道zookeeper注冊中心地址名稱空間, 以及作業的分片數目。在這里為了模擬多機器部署,先對工程進行maven打包, 然后在本機啟動項目,同時把打的jar包丟到虛擬機里執行?
?
總結
以上是生活随笔為你收集整理的熟练使用 Elastic Job系列之作业分片策略(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 敏捷软件开发学习笔记(四)之结构型设计模
- 下一篇: start() 跟 run() 方法的区