精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何選型一個合適的框架-分布式任務調度框架選型

開發 架構 分布式
定時任務是大家再開發中一個不可避免的業務,比如在一些電商系統中可能會定時給用戶發送生日券,一些對賬系統中可能會定時去對賬。

 1.背景

定時任務是大家再開發中一個不可避免的業務,比如在一些電商系統中可能會定時給用戶發送生日券,一些對賬系統中可能會定時去對賬。大概再很久以前每個服務可能就一臺機器,再這臺機器上直接搞個Timerschedule基本上就能滿足我們的業務需求,但是隨著時代的變遷,單臺機器已經遠遠不能滿足我們的需要,這個時候我們可能需要10臺,20臺甚至更多機器來運行我們的業務,接受我們的流量,這就是我們所說的橫向擴展。但是這里就有個問題,這么多臺機器如果還用我們的Timerschedule去做會發生什么呢?再上面的電商系統中有可能會給某個用戶發很多張生日券,對公司造成很多損失,所以我們需要一些其他方法,讓定時任務在多臺機器上只執行一次。

[[271156]]

這里想問下大家在沒有了解過或使用過分布式任務調度框架之前大家是如何做定時任務的呢?在Spring項目中大家肯定都知道Spring-Scheduler,只需要在Spring中的bean的對應方法上加上@Scheduler注解即可完成我們的定時任務,但是光是用這個注解還遠遠不能保證定時任務執行多次,我們需要一些其他手段的保證,一般來說方法可能不外乎下面幾種(都是基于Spring的項目來說):

  • 一臺機器,我們可以將一些不太重要的定時任務,可以使用一個專門的服務臺承載,然后使用單機跑,就算掛了只要我們再可接受的時間之內將其恢復,我們的業務也不會受到影響。
  • 多臺機器,加分布式鎖,只要我們執行任務的時候首先獲取一把分布式鎖,如果獲取失敗那么久證明有其他服務已經再運行,如果獲取成功那么證明沒有服務在運行定時任務,那么就可以執行。
  • 多臺機器,利用ZooKeeper對Leader機器執行定時任務,有很多業務已經使用了ZK,那么執行定時任務的時候判斷自己是否是Leader,如果不是則不執行,如果是則執行業務邏輯,這樣也能達到我們的目的。

目前我們公司做定時任務也是使用的上面三種方法,在業務初期使用這些方法基本也能大體滿足,但是隨著時間的遷移,我們遇到的問題越來越多,這里和大家分享一下:

  • 首先是單機問題,如何劃分一個業務不是很重要,這一塊本來就比較復雜,有可能每個人都說自己的業務都重要,其次是如果單機掛了 這個掛有可能是宕機,有可能是其他的一些情況,這個時間如何能保證我們再可接受的范圍之間恢復,這些都是難點。
  • 目前我們使用定時任務的時候,如果想讓它馬上執行一次,這個時候可能就需要額外再寫一個Rest接口或者再另外寫一個單獨的Job。
  • 還有個是我們需要更改定時任務執行時間,比如現在有個需求是從每12個小時執行一次變成每6小時執行一次,我們又得修改代碼,提交pr,然后打包上線,只是修改一個時間又得花費我們很多時間。
  • 無法暫停我們的定時任務,當我們的定時任務可能出現一些問題,比如一些定時報警的需求,當報警突然變得很多,這個時候需要暫停一下讓其停止發送報警,這個時候可能我們可以用一些分布式配置的開關去做,再邏輯中判斷定時任務開關是否打開,然后來做。這樣做雖然也比較簡單,但是我們這樣需要新添加一些與任務無關的邏輯。
  • 缺少對定時任務的監控,任務失敗之后開發人員無從得知,有人說不是有Error日志嗎,如果一個Error日志就一次報警那你們的服務能受得了嗎,一般來說連續幾次Error才會觸發報警,而我們定時任務的周期性的特性是不容易觸發連續的Error。

當然還有一些或多或少的小問題這里就不一一列舉了,如果大家有這種經歷可以自己慢慢體會發現。

2. 調研的基本原則

上面第一章講了我們框架的原因,不論你要引入或改進什么,都需要原因,因為做任何事都有成本,我經常看到一些很小的項目就開始搞引入消息隊列,或者分布式事務等等,這樣做反而是本末倒置,比如可能有一些博客系統就搞個消息隊列削峰減流,這樣做有可能還沒有同步調用來得快。

當我們有了原因之后,就可以著手做一些調研或者技術方案的設計。這里我講一下我的調研框架一些基本原則,如果大家以后有類似的調研框架的需求都可以往這個里面來套。

  • 簡單-對開發者接入簡單,對使用者使用簡單。
  • 豐富的文檔,有很多開源的項目文檔少之又少,當然還有一些開源項目只有英文文檔,如果你英文不是很行,那可能需要考慮中文居多的文檔。
  • 有管理界面,很方便執行操作和統計數據。
  • 支持主流框架:比如Spring,Springboot等,當然這個至少要支持你們業務中的主流框架。
  • 框架輕量級,方便根據自己的需求進行定制化。
  • 高性能,高可靠,高可用:不能讓框架成為業務中的瓶頸。
  • 代碼更新頻率和社區使用情況:使用的公司越多證明其越受更多人的喜愛,代碼更新頻率越高證明出現問題就會越少,最好是由大廠開源并且維護。
  • 多語言需求:如果在你們業務中有多語言需求,比如你們公司用的開發語言很多,都需要調度框架那么你需要使用多語言支持。比如Rpc支持多語言的代表就是Thrift。
  • 能否解決當前的痛點:這個是最重要的,如果連你問題都解決不了那使用這個還有什么意義呢?

當我們有了上述的幾大原則之后,我們接下來可以進入調研。

3.調研框架

3.1 TBSchedule

一般調研Java系的一些框架,可以先看看阿里是不是有開源的,畢竟最近這幾年阿里在開源這一塊做得是非常的好,再網上搜索到阿里在12年開源了一個調度框架叫TBSchedule,現在再去搜索代碼,發現已經人走茶涼,代碼都被清理干凈了。當然還有一個個人項目將其Fork出來再不斷維護,但是使用者實在是少這里就不說明了。 github地址:github.com/taobao/TBSc…

3.2 elastic-job

elastic-Job 是當當開源的一個分布式調度解決方案,由兩個相互獨立的子項目 Elastic-Job-Lite 和 Elastic-Job-Cloud 組成。定位為輕量級無中心化解決方案,使用 jar 包的形式提供分布式任務的協調服務。支持分布式調度協調、彈性擴容縮容、失效轉移、錯過執行作業重觸發、并行調度、自診斷和修復等等功能特性。

這個框架大概在2年前很火,當時使用的公司很多,想必很多人也聽過了,但是很可惜現在已經不在維護了,代碼已經有2年沒有更新了,這里違反了更新頻率的原則,如果出現問題可能都沒什么人幫助你,所以我們并不是很推薦使用。 github地址:github.com/elasticjob/…

3.3 一些比較小眾的

在網上有一些比較小眾的github star很少,更新頻率也很少: Uncode-Schedule,LTS,openCron等等,這些也不符合我們的原則,都不予以考慮

3.4 XXL-JOB

由于分布式定時任務現在還沒有基金會比如CNCF,Apache等,抉擇起來可能不是那么難。不像消息隊列再Apache里面就有好幾個:Kafka,rocketmq,plusar等等,每一個的社區都很龐大,可能選擇是比較困難的。那么我們基本就還剩下兩個選擇,一個是自研,這種任務調度框架,再研發的困難程度上是遠遠比不上消息隊列的研發,所以其實很多公司都選擇了自研,比如:美團的Crane這些。但是對于一些消息隊列這些復雜的中間件可能會選擇二次開發,比如美團的mafka就是基于kafka二次開發,滴滴的DDMQ也是基于Rocketmq。而我們目前如果選擇自研再資源上來說是明顯不夠的,這里我們還是使用的是二次開發框架的策略。

當然這里還剩下一個XXL-Job:www.xuxueli.com/xxl-job 的選擇,其基本符合我們的原則,目前代碼也在持續更新,issue作者也在積極的回復,使用的公司也有200多家,其中包括之前的點評,同時其他的原則也很符合。一般來說當你決定選擇某個框架的時候需要詳細的列舉一下優點,好讓其他人得以信服。

xxl-job有下面一些特點:

  • 簡單:支持通過Web頁面對任務進行CRUD操作,操作簡單,一分鐘上手;
  • 動態:支持動態修改任務狀態、啟動/停止任務,以及終止運行中任務,即時生效;
  • 調度中心HA(中心式):調度采用中心式設計,“調度中心”自研調度組件并支持集群部署,可保證調度中心HA;
  • 執行器HA(分布式):任務分布式執行,任務"執行器"支持集群部署,可保證任務執行HA;
  • 注冊中心: 執行器會周期性自動注冊任務, 調度中心將會自動發現注冊的任務并觸發執行。同時,也支持手動錄入執行器地址;
  • 彈性擴容縮容:一旦有新執行器機器上線或者下線,下次調度時將會重新分配任務;
  • 路由策略:執行器集群部署時提供豐富的路由策略,包括:第一個、最后一個、輪詢、隨機、一致性HASH、最不經常使用、最近最久未使用、故障轉移、忙碌轉移等;
  • 故障轉移:任務路由策略選擇"故障轉移"情況下,如果執行器集群中某一臺機器故障,將會自動Failover切換到一臺正常的執行器發送調度請求。
  • 阻塞處理策略:調度過于密集執行器來不及處理時的處理策略,策略包括:單機串行(默認)、丟棄后續調度、覆蓋之前調度;
  • 事件觸發:除了"Cron方式"和"任務依賴方式"觸發任務執行之外,支持基于事件的觸發任務方式。調度中心提供觸發任務單次執行的API服務,可根據業務事件靈活觸發。
  • 任務進度監控:支持實時監控任務進度;
  • Rolling實時日志:支持在線查看調度結果,并且支持以Rolling方式實時查看執行器輸出的完整的執行日志

基本上上面的一些特點都是我們業務中所需要的,所以這里最后選擇了XXL-JOB

4.總結

俗話說:授人以魚不如授人以漁,之前的文章每次都是介紹某某框架,這一次我偏向于介紹我是如何選擇的這款框架,讓大家再以后調研的過程中也可以按照這個思路,如果說你也有好的并且不同的調研思路,歡迎留言或者加群交流。當然一般調研完畢之后,作為一個調研人如果你不弄清楚這個框架的源碼和實現原理,那么就是一個不合格的調研人,所以下一篇文章我會詳細的介紹XXL-Job的實現原理。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2024-02-19 00:00:00

分布式定時任務框架

2022-08-09 08:40:37

框架分布式定時任務

2023-06-26 00:14:28

Openjob分布式任務

2019-11-15 10:16:27

分布式任務框架

2022-03-17 09:55:05

架構分布式選型

2019-12-27 16:00:56

分布式事務框架Java

2020-06-23 10:22:58

GitHub代碼開發者

2022-03-14 10:12:22

架構網關技術

2024-09-03 08:14:34

2021-06-24 10:27:48

分布式架構系統

2021-06-25 10:45:43

Netty 分布式框架 IO 框架

2022-12-29 08:32:50

xxl-job緩存Schedule

2024-08-07 08:15:47

2024-09-23 04:00:00

java架構分布式系統

2020-09-29 19:20:05

鴻蒙

2021-02-10 09:54:15

分布式NacosApollo

2022-08-18 07:43:17

分布式存儲系統

2023-08-09 12:13:36

MDR服務監控

2020-09-11 09:44:04

微服務分布式鏈路

2023-11-22 10:07:22

點贊
收藏

51CTO技術棧公眾號

国产欧美亚洲日本| 自拍偷拍亚洲一区| 玩弄中年熟妇正在播放| 天天干在线观看| 亚洲免费中文| 一区二区三区视频免费在线观看| 亚洲第一中文av| 国产最新在线| 国产91丝袜在线播放九色| 久久久久久午夜| jizz日本免费| 成人做爰免费视频免费看| 国产精品久久免费看| 亚洲资源在线看| 午夜影院在线看| 欧洲毛片在线视频免费观看| 欧美丰满高潮xxxx喷水动漫| 精品少妇人欧美激情在线观看| 四虎精品在线| 久久精品国产99国产| 久久久欧美一区二区| 欧美日韩高清丝袜| 日本精品视频| 在线观看日韩毛片| 成人在线免费高清视频| 免费在线观看一级毛片| 精品亚洲porn| 欧美主播福利视频| 激情五月婷婷在线| 成人久久综合| 亚洲国产精品久久久久久| 免费看a级黄色片| 日本片在线观看| 久久伊人蜜桃av一区二区| 92福利视频午夜1000合集在线观看| 日韩 欧美 亚洲| 99九九热只有国产精品| 亚洲另类欧美自拍| 激情av中文字幕| 日本免费在线一区| 欧美午夜精品久久久久久久| 18视频在线观看娇喘| 国产片在线观看| eeuss国产一区二区三区| 国产一区二区在线播放| 在线观看日韩中文字幕| 精品91在线| 日韩亚洲精品视频| 无码人妻丰满熟妇啪啪欧美| 欧美天堂社区| 精品国产一区二区三区av性色| 亚洲最大成人在线观看| 电影天堂国产精品| 欧美性猛交xxxx乱大交蜜桃| 狠狠噜天天噜日日噜| 免费人成在线观看播放视频| 国产日韩欧美高清| 欧美精品一区在线发布| 同心难改在线观看| www.在线成人| 国产精品一区二区不卡视频| 国产suv精品一区二区69| 蜜桃视频一区二区三区在线观看| 日韩av免费在线播放| 一区二区三区视频免费看| 亚洲五月婷婷| 久久久免费在线观看| 国产网址在线观看| 激情综合视频| 性色av一区二区三区| 九九视频在线免费观看| 国内精品美女在线观看| 欧美激情一级欧美精品| 久久精品免费av| 在线观看视频日韩| 欧美在线xxx| 精品国产xxx| 国产视频一区在线观看一区免费| 69av在线视频| 青草视频在线观看免费| 视频一区二区中文字幕| 国产精品久久久久久久久久久久久久 | 97人人模人人爽人人喊中文字| 国产精品白嫩白嫩大学美女| 国内久久精品| 国产91精品久久久| 懂色av中文字幕| 麻豆精品视频在线观看视频| 成人免费在线网址| 亚洲第一天堂在线观看| jizz一区二区| 日韩精品久久一区二区三区| 免费在线看黄色| 一区二区三区中文字幕精品精品| 日韩精品一区二区免费| 中文不卡1区2区3区| 欧美中文字幕一区二区三区亚洲| 57pao国产成永久免费视频| www.成人| 亚洲第一福利网站| 欧美午夜激情影院| 亚洲小说欧美另类社区| 51精品在线观看| 亚洲 小说区 图片区| 国产乱码精品一区二区三区av| 国产麻豆一区二区三区在线观看| 伦理片一区二区三区| 日韩理论片网站| 激情五月宗合网| 国产亚洲精品精品国产亚洲综合| 欧美精品亚洲一区二区在线播放| 亚洲日本久久久| 精品国产中文字幕第一页| 久久国产天堂福利天堂| 亚洲人成色77777| 国产一区二区三区朝在线观看| 欧美丰满少妇xxxxx高潮对白| 久久人人爽人人人人片| 97视频精品| 97av在线视频免费播放| 国产精品女同一区二区| 久久众筹精品私拍模特| 黄色网zhan| 女生影院久久| 欧美大片顶级少妇| 农村老熟妇乱子伦视频| 国产欧美日韩一级| 亚洲最大成人网色| 粉嫩一区二区三区国产精品| 亚洲自拍与偷拍| 激情视频免费网站| 婷婷精品视频| 久久91亚洲人成电影网站 | 亚洲 欧美 自拍偷拍| 中文字幕视频一区| 精品少妇无遮挡毛片| 久久aimee| 欧美理论片在线观看| 中文字幕一区二区久久人妻| 91网站黄www| www.国产亚洲| 成人综合日日夜夜| 一区国产精品视频| 天堂网一区二区| 99视频有精品| 免费的一级黄色片| 91精品视频一区二区| 自拍偷拍亚洲区| 日韩中文字幕高清| 久久精品一区四区| 亚洲自偷自拍熟女另类| 国产日韩三级| 国产69精品久久久| 日本免费一区视频| 亚洲mv在线观看| 91传媒理伦片在线观看| 欧美视频导航| 国产精品久久久久久免费观看| а√天堂8资源在线官网| 欧美裸体bbwbbwbbw| 手机免费观看av| 毛片av中文字幕一区二区| 午夜欧美性电影| 视频精品导航| 中文字幕日本欧美| 中文字幕+乱码+中文乱码www| 久久久久久久综合日本| 中文字幕乱码人妻综合二区三区 | 日本暖暖在线视频| 欧美喷水一区二区| 欧美风情第一页| 国模一区二区三区白浆| 国产盗摄视频在线观看| 亚洲一区二区免费在线观看| 色与欲影视天天看综合网| 亚洲黄色片视频| 亚洲电影中文字幕在线观看| 视频免费在线观看| 欧美一级一区| 亚洲精品在线免费| 日韩精品久久久久久久软件91| 欧美黑人国产人伦爽爽爽| 日本国产在线观看| 色综合久久88色综合天天6| 公肉吊粗大爽色翁浪妇视频| 精品一区二区三区免费毛片爱| 色一情一乱一乱一区91| 9l视频自拍蝌蚪9l视频成人| 91成人免费观看网站| 国产三级电影在线| 制服丝袜亚洲精品中文字幕| 久久久久久久久久久网| 91免费国产在线观看| 国产精品igao| 一本到12不卡视频在线dvd| 国产精品久久久久久久免费大片 | 教室别恋欧美无删减版| 91精品在线影院| 91美女精品| 亚洲视频自拍偷拍| 欧美国产日韩在线观看成人| 国产黄色91视频| 狠狠爱免费视频| 欧美好骚综合网| 国产伦精品一区二区| 国产精品高清乱码在线观看 | 国产美女直播视频一区| 日本片在线观看| 亚洲欧美日本精品| 国产情侣一区二区| 欧美日韩视频在线| 国产福利视频网站| 2020国产成人综合网| 中文字幕 欧美日韩| 亚洲黄色视屏| 亚洲一区二区三区精品视频| 成人精品毛片| 成人www视频在线观看| 精精国产xxxx视频在线野外| 久久精品国产综合| 毛片在线播放网站| 精品成人一区二区三区| 一级α片免费看刺激高潮视频| 午夜电影一区二区三区| 91在线播放观看| 国产欧美日韩亚州综合 | 精品无码免费视频| 国产精品区一区二区三| 免费在线观看成年人视频| 国产一级精品在线| 婷婷六月天在线| 亚洲最黄网站| 国产在线无码精品| 久久综合电影| 日韩精品一线二线三线| 欧美日韩破处| 国产成人精品一区二区三区福利| 亚洲一区二区三区久久久| 国产不卡av在线免费观看| 18video性欧美19sex高清| 久久久精品一区二区三区| av在线日韩国产精品| 亚洲人精选亚洲人成在线| 天堂网在线中文| 日韩视频在线永久播放| 夜夜嗨aⅴ一区二区三区| 欧美艳星brazzers| 久久久黄色大片| 福利二区91精品bt7086| 日韩av电影网| 午夜视黄欧洲亚洲| 日韩欧美性视频| 亚洲成av人综合在线观看| 妺妺窝人体色www在线下载| 亚洲欧美日韩久久| 国产黄色的视频| 亚洲色图丝袜美腿| 一区二区国产精品精华液| 国产精品激情偷乱一区二区∴| 国产传媒国产传媒| 国产欧美一区二区精品仙草咪| 国产免费一区二区三区网站免费| 久久久不卡网国产精品二区| a级片在线观看| 国产色一区二区| 午夜影院黄色片| ...中文天堂在线一区| 久久成人小视频| 亚洲欧美日韩国产综合在线| 波多野结衣在线网址| 曰韩精品一区二区| 国产亚洲欧美精品久久久www| 亚洲一区免费观看| 日本一级一片免费视频| 色欧美日韩亚洲| 在线观看色网站| 91精品国产欧美一区二区| 午夜精品一二三区| 亚洲精品成人免费| 国产三级视频在线| 久久香蕉频线观| 黑人精品视频| 国产97人人超碰caoprom| 九七影院97影院理论片久久 | 久久精品无码av| 在线观看日韩一区| 99久久精品日本一区二区免费| 日韩精品一区二区在线| 涩涩视频免费看| 一区二区三区美女xx视频| 成人在线直播| 午夜精品久久久久久久男人的天堂 | 欧美高清一级片在线| www.av黄色| 国产午夜精品久久久| 91xxx在线观看| 欧美激情欧美激情| 丝袜美腿诱惑一区二区三区| 成人两性免费视频| 精品精品国产毛片在线看| 亚洲精品自在在线观看| 激情综合视频| 污视频免费在线观看网站| 国产91在线看| 日本猛少妇色xxxxx免费网站| 一区二区在线观看免费| 欧美精品韩国精品| 91精品国产一区二区| 日韩欧美亚洲系列| 久久电影一区二区| 国产 日韩 欧美一区| 91免费版网站在线观看| 久草在线成人| 国产精品入口芒果| 九九热在线视频观看这里只有精品 | 久久久123| 亚洲欧美一区二区三区久久| 欧美18一19xxx性| 97国产suv精品一区二区62| 亚洲伦理一区二区| 欧美1o一11sex性hdhd| 一区二区三区中文| 午夜dv内射一区二区| k8久久久一区二区三区| 日本妇女毛茸茸| 欧美三级在线视频| 日本亚洲一区| 久久久亚洲网站| 国产色99精品9i| 亚洲激情一区二区| 美女尤物久久精品| 性色av蜜臀av浪潮av老女人| 亚洲欧洲三级电影| 国产又粗又猛又爽又| 日韩av在线免费播放| 麻豆蜜桃在线| 91欧美视频网站| 日韩中文字幕高清在线观看| 日韩中文字幕三区| 成人精品在线视频观看| 国产精品九九九九九九| 欧美精品免费视频| 日韩精品黄色| 国产精品一区二区三区在线播放 | 日韩欧美国产高清| 国产写真视频在线观看| 成人精品视频99在线观看免费| 成人a'v在线播放| 激情视频综合网| 91理论电影在线观看| 亚洲精品视频在线观看免费视频| 精品福利在线导航| 草美女在线观看| 成人做爰66片免费看网站| 欧美日韩p片| 老熟女高潮一区二区三区| 亚洲在线一区二区三区| 黄色片一区二区三区| 欧美片一区二区三区| 999久久久久久久久6666| 国产精品www在线观看| 成人aa视频在线观看| 日韩伦人妻无码| 亚洲精品美女在线| 精品国产第一福利网站| 日韩国产精品一区二区| 蜜臀av在线播放一区二区三区| 色偷偷男人天堂| 69堂国产成人免费视频| 成a人片在线观看| 999视频在线免费观看| 国产一区二区三区四区老人| 国产xxxx视频| 91国产视频在线观看| 99reav在线| 91视频免费在线| 亚洲私人影院| 精品无码在线视频| 欧美在线一区二区| 欧美另类极品| 91成人免费看| 亚洲免费播放| 国产午夜福利一区| 欧美一区二区网站| sm在线观看| 青青成人在线| 加勒比av一区二区| 国产乱码久久久久久| 亚洲欧美另类自拍| 成人激情久久| 国产欧美日韩网站| 国产女主播一区| 国产成人麻豆精品午夜在线| 国内精品小视频在线观看| 啪啪亚洲精品| 色黄视频免费看| 一本色道久久综合亚洲91| 色视频在线免费观看| 国产精品久久久久久久天堂第1集| 久久激情视频|