少妇被躁爽到高潮无码人狍大战,欧洲亚洲国产精华液,色狠狠色噜噜av天堂一区,人人妻,一区二区三区,色偷偷wwww88888

首頁 - 關(guān)于研博 - 技術(shù)筆記 - SnailJob - 分布式任務(wù)重試與調(diào)度平臺
SnailJob - 分布式任務(wù)重試與調(diào)度平臺
2024.10.21

  1. 簡介

  1.1 項目介紹

  SnailJob是一個高效且可靠的開源分布式任務(wù)重試和任務(wù)調(diào)度平臺,旨在解決復(fù)雜分布式環(huán)境中的任務(wù)執(zhí)行問題。它的設(shè)計靈感源于對高可用性、靈活性和性能的追求,能夠幫助企業(yè)提升分布式業(yè)務(wù)系統(tǒng)的整體一致性。通過SnailJob,您可以輕松創(chuàng)建、管理和監(jiān)控可重試或定時執(zhí)行的任務(wù),確保業(yè)務(wù)流程的順暢進(jìn)行。

  開源地址:https://gitee.com/aizuda/snail-job

  1.2核心功能

  •   可重放的任務(wù):支持任務(wù)結(jié)果的記錄和回溯,便于調(diào)試和排查問題。
  •   智能重試策略:自動處理失敗任務(wù),可根據(jù)預(yù)設(shè)策略進(jìn)行重試,減少手動介入。
  •   分布式任務(wù)調(diào)度:提供秒級精確定時任務(wù)調(diào)度,并支持任務(wù)中斷和編排,滿足不同場景需求。
  •   權(quán)限管理:完善的權(quán)限控制機制,確保操作安全。
  •   告警監(jiān)控:實時監(jiān)控任務(wù)狀態(tài),異常時及時報警,保障業(yè)務(wù)穩(wěn)定運行。

  1.3 開源組件對比

 

  2. 常用注解

  2.1Retryable注解

 

  2.2ExecutorMethodRegister注解

 

  2.3JobExecutor注解

 

  3. 部署與試用

  3.1 搭建數(shù)據(jù)庫環(huán)境

  Snail Job支持多種數(shù)據(jù)庫,其中包含Mysql、Mariadb、Postgres、Oracle、MS SQL Server、達(dá)夢等??梢詧?zhí)行sql腳本生成相關(guān)表結(jié)構(gòu)也可以使用 docker compse快速構(gòu)建數(shù)據(jù)庫環(huán)境。以使用docker搭建數(shù)據(jù)庫環(huán)境為例,打開拉下來的項目代碼

cd ./doc/docker

## 啟動 mysql

docker compose up -d mysql

  3.2 服務(wù)端配置

  服務(wù)端代碼整體目錄結(jié)構(gòu)如圖所示:

 

  在snail-job-server-sater啟動服務(wù)端程序

      application.yml 常用配置

 

  3.3 客戶端配置

 

  注:在啟動多個客戶端時要配置客戶端端口,否則會報地址被占用,在集群模式下只會有一個服務(wù)正常訪問

  3.4 服務(wù)端web界面

  服務(wù)端啟動后,默認(rèn)訪問地址為:http://127.0.0.1:8080/snail-job/

 

  3.5 定時任務(wù)配置

 

  點擊新增新建一個新的定時任務(wù)

組名稱:組是一個邏輯概念, 它可以看做是場景的分類或者是標(biāo)簽, 用于將一些相關(guān)性的場景進(jìn)行分組,可以理解為MQ的Topic和Queue的關(guān)系; 服務(wù)端的負(fù)載均衡也是基于組 把不同的組分配到不同的服務(wù)端集群的其中一個節(jié)點。

 

  客戶端的group為已經(jīng)配置好的組名

       執(zhí)行器名稱:執(zhí)行任務(wù)的方法名稱

 

  任務(wù)類型:

  •   集群模式: 當(dāng)客戶端部署節(jié)點數(shù)>=1時,同一時間只會在一個節(jié)點執(zhí)行任務(wù),確保任務(wù)的單一執(zhí)行性。
  •   廣播模式: 每次任務(wù)觸發(fā)時,所有活躍的客戶端都會執(zhí)行一次任務(wù),實現(xiàn)任務(wù)的廣泛觸達(dá)和執(zhí)行。
  •   分片模式: 按照預(yù)定的分片數(shù)量,輪詢地將任務(wù)依次下發(fā)給活躍的客戶端,實現(xiàn)任務(wù)的分布式處理和優(yōu)化執(zhí)行。

  路由策略:

  •   輪詢: 輪詢路由策略是一種簡單而有效的方法,按照順序依次將任務(wù)分發(fā)給不同的節(jié)點,確保任務(wù)在集群中平均分布,達(dá)到負(fù)載均衡的效果。
  •   一致性Hash: 一致性Hash路由策略基于哈希函數(shù),將任務(wù)和節(jié)點映射到一個固定的哈希環(huán)上。這樣,當(dāng)有新的節(jié)點加入或節(jié)點離開時,只需重新計算少量的映射關(guān)系,而不會影響到大部分任務(wù)的分配。這種策略保持了相對的穩(wěn)定性和負(fù)載均衡。
  •   隨機: 隨機路由策略是將任務(wù)隨機分配給集群中的一個節(jié)點。每次任務(wù)觸發(fā)時,系統(tǒng)會隨機選擇一個節(jié)點來執(zhí)行任務(wù)。盡管簡單,但也具有一定的負(fù)載均衡效果,適用于某些場景下的隨機化需求。
  •   LRU (Least Recently Used): LRU路由策略基于最近使用的原則,將任務(wù)分配給最近最少被使用的節(jié)點。這種策略保持了節(jié)點的活躍性,避免任務(wù)集中在某個節(jié)點上執(zhí)行,從而提高系統(tǒng)的性能和穩(wěn)定性。

  阻塞策略:

  •   丟棄策略: 丟棄策略是一種簡單的阻塞策略,當(dāng)處理速度無法跟上任務(wù)批次的產(chǎn)生速度時,新產(chǎn)生任務(wù)批次將被直接丟棄,從而保持系統(tǒng)的穩(wěn)定性。
  •   覆蓋策略: 覆蓋策略是指當(dāng)新的任務(wù)批次產(chǎn)生時,如果上一個任務(wù)批次仍在處理中,將產(chǎn)生一個新的批次覆蓋掉正在處理的批次,系統(tǒng)開始處理新的批次。
  •   并行策略: 并行策略允許系統(tǒng)同時處理多個批次,無需等待前一個批次處理完成。這種策略可以提高系統(tǒng)的處理能力,但需要考慮線程安全和資源競爭等問題。

  我們配置的為切片類型,因此在配置完定時任務(wù)后,我們啟動兩個不同端口的客戶端,分組名為job_demo,點擊執(zhí)行該定時任務(wù),兩個客戶端會收到不同的分片參數(shù),如圖所示

 

  3.6工作流

  可以通過工作流執(zhí)行定時任務(wù),以上文的切片任務(wù)為例

 

  在創(chuàng)建完定時任務(wù)后,客戶端以十秒一次執(zhí)行切片任務(wù),結(jié)果如下圖所示

  

 

獲取相關(guān)資料
下載地址將會發(fā)送至您填寫的郵箱
相關(guān)新聞
IEC104協(xié)議解析
2025-03-07
電動汽車GB/T32960-2016協(xié)議介紹開發(fā)
2025-02-21
HJ212環(huán)境監(jiān)測數(shù)據(jù)傳輸協(xié)議
2025-02-14
  • 在線客服
  • 電話咨詢
  • 微信
  • 短視頻