精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美aaaa视频| 国产视频一区二区在线播放| 久久久久久久久久电影| 国产精品久久97| 污软件在线观看| 国内精品国产成人国产三级粉色| 一本色道**综合亚洲精品蜜桃冫 | 亚洲高清精品视频| 免费一级欧美片在线播放| 色小说视频一区| 久久久久国产精品无码免费看| 吞精囗交69激情欧美| 日韩美女久久久| 欧美日韩电影一区二区| 午夜精品久久久久久久96蜜桃| 免费在线播放第一区高清av| 久久香蕉国产线看观看网| 中文人妻一区二区三区| 国产免费区一区二区三视频免费 | 中文字幕日本人妻久久久免费| 欧美/亚洲一区| 一本久久综合亚洲鲁鲁| 年下总裁被打光屁股sp| 中文字幕在线播放日韩| 亚洲性感美女99在线| 丝袜美腿亚洲一区二区| aa一级黄色片| 91成人在线精品视频| 亚洲免费高清视频在线| 欧美大香线蕉线伊人久久国产精品| 97精品人妻一区二区三区香蕉| 国产精品毛片在线| 欧美黄色小视频| 九九热视频在线免费观看| 最近国产精品视频| 亚洲国产成人精品久久| 亚洲精品免费一区亚洲精品免费精品一区| jizz内谢中国亚洲jizz| 欧美日韩国产中文字幕 | 国产一区二区三区久久久久久久久 | 午夜精品久久久久久不卡8050| 97久久人人超碰caoprom欧美| 成年人视频免费| 免费亚洲婷婷| 欧美一区二区影院| 精品一区免费观看| 欧美日韩国产欧| 久久成人亚洲精品| 免费成人美女女在线观看| 精品国产欧美日韩| 国产午夜精品一区二区三区| 成年人免费观看视频网站| 天天躁日日躁狠狠躁欧美| 亚洲精品xxx| 菠萝菠萝蜜网站| 日韩电影不卡一区| 亚洲九九九在线观看| 香蕉视频黄色在线观看| 日韩三级毛片| 亚洲人成免费电影| 男人操女人动态图| 精品国产美女| 久久久精品一区| 久久99久久久| 在线看片日韩| 4438全国成人免费| 无码人妻精品一区二区50| 日韩国产一区二| 国产成人精品久久二区二区| a片在线免费观看| 久久99精品视频| 久久久久久综合网天天| 激情小说中文字幕| 99精品欧美| 欧美一区视频在线| 中文字幕在线视频第一页| 看电视剧不卡顿的网站| 亚洲综合色av| 午夜国产在线视频| 欧美经典三级视频一区二区三区| 亚洲高清视频在线观看| av中文字幕在线观看| 亚洲成人福利片| 密臀av一区二区三区| 亚洲国产91视频| 精品国产一区二区亚洲人成毛片 | 欧美激情视频在线| 亚洲 欧美 视频| 秋霞电影网一区二区| 99久久自偷自偷国产精品不卡| 日韩在线视频第一页| 国产日韩精品视频一区| 欧洲美女和动交zoz0z| 97超碰免费在线| 欧美亚洲高清一区| av影片在线播放| 国内精品久久久久久久影视简单| 精品国产一区二区三区久久狼5月| 久久综合久久鬼| 日韩av中文字幕一区二区| 超碰在线97av| 成人亚洲综合天堂| 亚洲成人一区二区在线观看| 特级丰满少妇一级| 精品福利一区| 久久久精品视频成人| 无码人妻一区二区三区线| 国产精品一区二区91| 日本欧美色综合网站免费| 1区2区3区在线视频| 在线视频一区二区免费| 精品无码av一区二区三区不卡| 国产乱码精品一区二区三区四区| 色综合天天综合网国产成人网 | 亚洲成人1234| 国产中文av在线| 日韩精品一级二级| 国产一区免费观看| av在线播放国产| 欧美色精品天天在线观看视频| 国产不卡一二三| 亚洲色图欧美| 国产日韩精品在线观看| 黄视频在线观看免费| 亚洲成av人片在线观看| 99精品视频免费版的特色功能| 精品亚洲成人| 国产成人小视频在线观看| 亚洲aⅴ乱码精品成人区| 亚洲精选视频免费看| 五月天激情视频在线观看| 少妇精品久久久一区二区三区| 国模吧一区二区| 午夜精品久久久久久久96蜜桃| 国产精品成人网| 国产91色在线观看| 成人黄色小视频| 国产精品18久久久久久首页狼| 无套内谢的新婚少妇国语播放| 一区二区国产视频| 中文字幕在线播放一区二区| 久久久久国产| 91精品视频在线| 黄页视频在线播放| 欧美电影在线免费观看| 国产尤物在线播放| 国内精品伊人久久久久av影院| 亚洲免费视频一区| 亚洲国产天堂| 久久午夜a级毛片| 99re只有精品| 夜夜操天天操亚洲| 北京富婆泄欲对白| 99人久久精品视频最新地址| 精品国产乱码久久久久久88av | 亚洲成人一区在线| 国产精品成人99一区无码 | 国产精品电影一区二区三区| 三上悠亚av一区二区三区| 日韩在线视频精品| 成人亚洲激情网| 日本在线观看高清完整版| 日韩精品专区在线| 激情五月色婷婷| 久久久久国产成人精品亚洲午夜| 国产超碰在线播放| 欧美大黑bbbbbbbbb在线| 91久久久国产精品| 51漫画成人app入口| 日韩电影大片中文字幕| 国产免费一级视频| 中文字幕一区三区| 国产成人av片| 老鸭窝亚洲一区二区三区| 日韩电影免费观看在| 4438五月综合| 久久久噜噜噜久久| 精品资源在线看| 这里只有精品免费| 国内免费精品视频| 国产亚洲婷婷免费| 一级日本黄色片| 国产精品入口66mio| 亚洲一区二区三区在线观看视频| 精品国产三区在线| 欧美一乱一性一交一视频| 91欧美在线视频| 精品国产伦一区二区三区观看方式 | 欧美日韩中文字幕日韩欧美| 久久一级免费视频| 99久久免费视频.com| 午夜免费福利在线| 亚洲第一黄色| 亚洲综合激情五月| 日本成人中文| 91久热免费在线视频| 高清毛片在线观看| yw.139尤物在线精品视频| 手机看片国产1024| 欧美男男青年gay1069videost | 精品视频1区2区3区| 久久一级黄色片| 国产精品女同一区二区三区| 国产综合内射日韩久| 日本不卡视频在线| 自拍日韩亚洲一区在线| 91tv官网精品成人亚洲| 欧美一区二区高清在线观看| 2020最新国产精品| 国产主播在线一区| 日韩一级二级| 欧美亚洲视频在线看网址| av网站导航在线观看免费| 一本一本久久a久久精品综合小说| 高h放荡受浪受bl| 91精品国产综合久久香蕉麻豆| 日本久久综合网| 亚洲第一成人在线| 国产精品69久久久久孕妇欧美| 91小视频在线| 中文字幕第九页| 国产自产v一区二区三区c| 黑人粗进入欧美aaaaa| 国产婷婷精品| 日韩黄色片在线| 综合激情视频| 免费观看国产视频在线| 久久高清免费| 亚洲精品电影在线一区| 欧美极品在线观看| 久久er99热精品一区二区三区 | 极品少妇xxxx精品少妇| 另类小说第一页| 日韩专区欧美专区| 激情综合网婷婷| 久久精品亚洲| 午夜肉伦伦影院| 国产九九精品| 丰满爆乳一区二区三区| 亚洲清纯自拍| 日韩av三级在线| 一区二区三区导航| 欧美一区二区三区爽大粗免费| 黄色成人在线网址| 国产aaa免费视频| 99精品欧美| 超碰97人人射妻| 视频一区二区三区在线| 国产aaaaa毛片| 毛片av一区二区三区| 亚洲一区二区三区观看| 国内精品久久久久影院色 | xnxx国产精品| 国产真人做爰视频免费| 日韩精品一区第一页| 欧美日韩在线中文| 天堂一区二区在线免费观看| 国产成人无码精品久久久性色| 在线视频精品| 999香蕉视频| 日本欧美一区二区三区乱码| 无限资源日本好片| 国产在线观看一区二区| 色欲无码人妻久久精品| 国产成人精品亚洲777人妖| 美女露出粉嫩尿囗让男人桶| 99re这里只有精品视频首页| 麻豆av免费观看| 欧美激情一区二区三区不卡| 紧身裙女教师波多野结衣| 夜夜爽夜夜爽精品视频| 亚洲精品国产精品乱码| 91久久一区二区| 一区二区视频免费| 欧美一级片免费看| 凸凹人妻人人澡人人添| 国产亚洲日本欧美韩国| 黄色一级大片在线免费看产| 久久青草精品视频免费观看| mm视频在线视频| 国产精品一区二区久久国产| 久久久久久亚洲精品美女 | 成人在线视频免费观看| 国产又粗又长又爽视频| 久久只有精品| 一个人看的视频www| 91蜜桃婷婷狠狠久久综合9色| av片在线免费看| 香蕉久久一区二区不卡无毒影院| 不卡av电影在线| 欧美大片在线观看| 成人在线免费观看| 欧美黄色性视频| 福利精品一区| 99久久99| 久久成人综合| 国产综合免费视频| 国产a视频精品免费观看| 谁有免费的黄色网址| 一区二区在线观看av| 91视频久久久| 精品国产免费人成在线观看| 免费成人黄色| 日本久久久久久久久久久| 麻豆国产一区二区三区四区| 欧美专区一二三| 国产中文一区| 成人不卡免费视频| 久久久www成人免费毛片麻豆| 精品爆乳一区二区三区无码av| 在线观看日韩电影| 天天av天天翘| 欧美日韩国产999| 日韩欧乱色一区二区三区在线| 蜜桃导航-精品导航| 欧美涩涩网站| а 天堂 在线| 国产精品日韩精品欧美在线| 美日韩一二三区| 亚洲第一色中文字幕| 手机av免费在线| 92看片淫黄大片看国产片| 欧美色图一区| 激情网站五月天| 99re这里都是精品| 久久免费在线观看视频| 91精品国产综合久久蜜臀| 国产精品视频一区二区久久| 热草久综合在线| 伊人成综合网yiren22| 色欲色香天天天综合网www| 国产伦理精品不卡| 国产午夜手机精彩视频| 欧美日本一区二区三区四区| av在线免费观看网站| 国产成人啪精品视频免费网| 伊人久久大香线蕉av不卡| 久久久久久久久久久福利| 91亚洲精品一区二区乱码| 久久草视频在线| 亚洲成人国产精品| 久久影院午夜精品| 国产亚洲福利社区| 在线观看的日韩av| 色哟哟无码精品一区二区三区| 一区二区三区四区精品在线视频| 国产影视一区二区| 久久精品国产清自在天天线| 人人精品久久| 91社在线播放| 国产精品一区一区三区| 欧美人妻精品一区二区三区 | xxxxwww一片| 一区二区三区免费在线观看| 国内精品久久久久久久久久久| 美日韩精品免费视频| 亚洲日本一区二区三区在线| 国产欧美久久久久| 99热国产精品| 久久久免费高清视频| 欧美日本视频在线| 午夜激情视频在线观看| 成人一区二区电影| 国产精品99一区二区| youjizz.com国产| 色综合天天视频在线观看| 国产h在线观看| 91精品久久久久久久久久久久久久 | 白白色 亚洲乱淫| 国产精品第5页| 中文字幕视频一区二区在线有码 | 精品免费日产一区一区三区免费| 国产精品久久久久久模特| 中文字幕免费在线看线人动作大片| 欧美午夜精品一区二区蜜桃| av网站在线免费| 狠狠色综合色区| 久久99精品国产麻豆婷婷| 九九热视频精品| 国产偷亚洲偷欧美偷精品| 激情久久一区二区| 日韩国产成人无码av毛片| 久久蜜桃av一区二区天堂 | 亚洲精品美女久久久| 日产精品一区| 97中文字幕在线| 亚洲国产精品99久久久久久久久| 国产a级免费视频| 日本国产一区二区三区| 亚洲破处大片| www在线观看免费视频| 日韩视频在线你懂得| 欧美一区 二区 三区| 久久久久久久久久久久久国产| 91在线观看视频| 国产aⅴ一区二区三区| 日韩av毛片网| 亚洲国产精品一区| 亚洲黄色网址大全| 亚洲激情自拍图|