国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式異步任務(wù)處理組件(二)

這篇具有很好參考價(jià)值的文章主要介紹了分布式異步任務(wù)處理組件(二)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一些關(guān)鍵點(diǎn)的設(shè)計(jì)腦暴記錄----very important?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-615710.html

  1. 首先,任務(wù)存儲(chǔ)交給kafka,由節(jié)點(diǎn)負(fù)責(zé)寫入kafka,acks=1;失敗重試;透傳kafka的提交可靠性,保證任務(wù)提交成功;后續(xù)可以考慮自己實(shí)現(xiàn)kafka相關(guān)機(jī)制---做局部優(yōu)化,因?yàn)閺?qiáng)依賴kafka
  2. 如何保證消息唯一被消費(fèi)一次---集群狀態(tài)維護(hù)全局消息唯一key,在寫入kafka之前生成,保證提交的任務(wù)具有全局唯一key;每次消息執(zhí)行成功做集群廣播,通知到一半以上的節(jié)點(diǎn)再持久化(這里考慮一半以上節(jié)點(diǎn)還是所有節(jié)點(diǎn),應(yīng)該是所有節(jié)點(diǎn)才行--研究一下一半以上的架構(gòu)模型適用于什么場景);每個(gè)節(jié)點(diǎn)間隔時(shí)間做持久化,因?yàn)槭羌喜僮鞅WC不會(huì)重復(fù);間隔時(shí)間做持久化保證性能;(這里存在疑點(diǎn),如果多節(jié)點(diǎn)同時(shí)失敗怎么辦,參考zookeeper的持久化機(jī)制,或者集群同步機(jī)制)保證全局key持久化成功,這樣不能保證任務(wù)消息只被提交一次---數(shù)據(jù)庫操作才可以保證,需要依賴回滾機(jī)制;;;有些任務(wù)不具有回滾性質(zhì)--比如發(fā)送郵件。如何處理?可以分為兩段提交,prepare狀態(tài)在發(fā)郵件之前執(zhí)行,提供檢查策略用于其他節(jié)點(diǎn)檢查郵件是否真實(shí)被執(zhí)行;數(shù)據(jù)庫操作提供自檢查--檢查全局ID即可;文件和郵件短信之類的操作需要用戶提供檢查策略;---理論上嚴(yán)格保證唯一執(zhí)行需要每次處理任務(wù)前執(zhí)行檢查策略--所以這里要可配置,是否需要嚴(yán)格只執(zhí)行一次,還是至少被執(zhí)行一次--原理和提交可靠性一樣---也不太一樣,提交策略是至少被提交一次,其實(shí)有可能多次提交;
  3. 如何維護(hù)集群狀態(tài)全局唯一key,預(yù)分配+全局投票;
  4. 再談如何保證消息唯一被消費(fèi)一次--全內(nèi)存操作,只有消息消費(fèi)成功才給kafka提交offset,因?yàn)槭侨珒?nèi)存操作保證每次拉取的消息數(shù)量不會(huì)太多;---怎么保證消息不回積壓--積壓問題通過集群部署實(shí)現(xiàn),因?yàn)槿珒?nèi)存操作保證最大運(yùn)行能力,還產(chǎn)生積壓說明系統(tǒng)配置不夠;--非必要不考慮將消息再次持久化,如果要持久化只考慮持久化極少數(shù)一部分;
  5. 集群狀態(tài)通過全局廣播或者zookeeper來實(shí)現(xiàn)--基本上考慮節(jié)點(diǎn)上線和節(jié)點(diǎn)下線問題;也要考慮節(jié)點(diǎn)網(wǎng)絡(luò)延遲問題;--一般來說全局廣播和zookeeper的原理是一樣的;
  6. 定制化分布式線城池--任務(wù)分類;優(yōu)先級(jí);線程池動(dòng)態(tài)監(jiān)控和動(dòng)態(tài)調(diào)整;---詳細(xì)考慮設(shè)計(jì)哪些參數(shù),比如任務(wù)執(zhí)行時(shí)間,單任務(wù)實(shí)際線程運(yùn)行時(shí)間和阻塞時(shí)間,IO操作時(shí)間--然后對(duì)任務(wù)打標(biāo)簽---標(biāo)簽是否需要廣播,廣播后在任務(wù)提交時(shí)就打標(biāo)簽,以配合自我流量控制;
  7. 任務(wù)處理器handler如何注冊(cè)--動(dòng)態(tài)加載;JNI;或者RPC--這三種方式應(yīng)該都要支持;
  8. 單節(jié)點(diǎn)流量控制--根據(jù)當(dāng)前節(jié)點(diǎn)實(shí)際任務(wù)執(zhí)行情況做流量控制,單節(jié)點(diǎn)消費(fèi)能力做流量調(diào)節(jié)跟其他節(jié)點(diǎn)沒有關(guān)系--因?yàn)槭亲畲竽芰?zhí)行;
  9. 延時(shí)隊(duì)列怎么實(shí)現(xiàn)--雙隊(duì)列--實(shí)時(shí)隊(duì)列和延時(shí)隊(duì)列--但是這里也要配合標(biāo)簽和流量控制考慮到實(shí)際上的延時(shí)隊(duì)列跟實(shí)際上的實(shí)時(shí)隊(duì)列的差別---延時(shí)隊(duì)列分為兩種--一種是計(jì)時(shí)結(jié)束后需要立即執(zhí)行,另一種是計(jì)時(shí)結(jié)束后重新入隊(duì);
  10. 因?yàn)楸WC強(qiáng)可靠性,任務(wù)是否支持子任務(wù)或者叫任務(wù)遞歸,任務(wù)嵌套--比如自動(dòng)扣費(fèi)成功后產(chǎn)生生成訂單任務(wù)---在扣費(fèi)任務(wù)里提交生成訂單即可,不需要組件做管理;---第10點(diǎn)不用考慮;
  11. 單節(jié)點(diǎn)流量控制需要規(guī)避大任務(wù)阻當(dāng)小任務(wù)的情況發(fā)生---比如一個(gè)大任務(wù)擋住所有后續(xù)所有小任務(wù)的執(zhí)行;所以這里需要保證所有任務(wù)不是嚴(yán)格順序執(zhí)行的;比如一部分線程寧愿空著也不能消費(fèi)大任務(wù),這里可以做任務(wù)類型隊(duì)列,CPU密集型任務(wù)隊(duì)列,IO密集型任務(wù)隊(duì)列,總時(shí)間小的任務(wù)隊(duì)列,總時(shí)間長的任務(wù)隊(duì)列;-----衡量標(biāo)準(zhǔn)要考慮絕對(duì)參數(shù),自適應(yīng)性參數(shù)調(diào)節(jié)可能產(chǎn)生相對(duì)參數(shù);

到了這里,關(guān)于分布式異步任務(wù)處理組件(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Asynq: 基于Redis實(shí)現(xiàn)的Go生態(tài)分布式任務(wù)隊(duì)列和異步處理庫

    Asynq: 基于Redis實(shí)現(xiàn)的Go生態(tài)分布式任務(wù)隊(duì)列和異步處理庫

    Asynq [1] 是一個(gè)Go實(shí)現(xiàn)的分布式任務(wù)隊(duì)列和異步處理庫,基于redis,類似Ruby的 sidekiq [2] 和Python的 celery [3] 。Go生態(tài)類似的還有 machinery [4] 和goworker 同時(shí)提供一個(gè)WebUI asynqmon [5] ,可以源碼形式安裝或使用Docker image, 還可以和Prometheus集成 docker run --rm --name asynqmon -p 8080:8080 hibiken/as

    2024年02月14日
    瀏覽(22)
  • 分布式異步任務(wù)框架celery

    Celery是一個(gè)基于消息中間件的分布式任務(wù)隊(duì)列框架,專門用于處理異步任務(wù)。它允許生產(chǎn)者發(fā)送任務(wù)到消息隊(duì)列,而消費(fèi)者則負(fù)責(zé)處理這些任務(wù)。Celery的核心特性包括異步執(zhí)行、實(shí)時(shí)操作支持以及強(qiáng)大的調(diào)度能力,使其每天可以處理數(shù)以百萬計(jì)的任務(wù)。 在Celery中,任務(wù)是以

    2024年04月10日
    瀏覽(23)
  • celery分布式異步任務(wù)隊(duì)列-4.4.7

    version 4.4.7 學(xué)習(xí)總結(jié) python實(shí)現(xiàn)、開源、遵循BSD許可的分布式任務(wù)隊(duì)列; 可以處理大量消息,簡單、靈活、可靠的分布式系統(tǒng),專注任務(wù)的 實(shí)時(shí)處理 和 定時(shí)調(diào)度 處理; 它是線程、進(jìn)程分配任務(wù)的一種機(jī)制,官方僅做支持linux開發(fā)。 五大部分: task,任務(wù) beat,定時(shí)調(diào)度管理器

    2024年02月07日
    瀏覽(46)
  • 分布式任務(wù)調(diào)度,定時(shí)任務(wù)的處理方案

    分布式任務(wù)調(diào)度,定時(shí)任務(wù)的處理方案

    適用場景: Spring 定時(shí)任務(wù)是 Spring 框架提供的一種輕量級(jí)的任務(wù)調(diào)度方案,它的特點(diǎn)是簡單易用、輕量級(jí)。Spring 定時(shí)任務(wù)的執(zhí)行是在 單個(gè)節(jié)點(diǎn) 上進(jìn)行的,如果需要分布式任務(wù)調(diào)度,需要自己實(shí)現(xiàn)相應(yīng)的解決方案。 1.導(dǎo)入依賴版本自己控制 2.啟動(dòng)類加上@EnableScheduling 3.編寫業(yè)

    2023年04月14日
    瀏覽(46)
  • 4.4 媒資管理模塊 - 分布式任務(wù)處理介紹、視頻處理技術(shù)方案

    4.4 媒資管理模塊 - 分布式任務(wù)處理介紹、視頻處理技術(shù)方案

    視頻轉(zhuǎn)碼是指的對(duì)視頻文件的編碼格式進(jìn)行轉(zhuǎn)換 視頻上傳成功需要對(duì)視頻的格式進(jìn)行轉(zhuǎn)碼處理,比如:avi轉(zhuǎn)成mp4 一般做文件存儲(chǔ)的服務(wù)都需要對(duì)文件進(jìn)行處理,例如對(duì)視頻進(jìn)行轉(zhuǎn)碼處理,可能由于文件量較大需要使用多線程等技術(shù)進(jìn)行高效處理 文件格式 :是指.mp4、.avi、

    2024年02月02日
    瀏覽(33)
  • Celery分布式異步框架

    Celery分布式異步框架

    \\\"\\\"\\\" 1)可以不依賴任何服務(wù)器,通過自身命令,啟動(dòng)服務(wù)(內(nèi)部支持socket) 2)celery服務(wù)為為其他項(xiàng)目服務(wù)提供異步解決任務(wù)需求的 注:會(huì)有兩個(gè)服務(wù)同時(shí)運(yùn)行,一個(gè)是項(xiàng)目服務(wù),一個(gè)是celery服務(wù),項(xiàng)目服務(wù)將需要異步處理的任務(wù)交給celery服務(wù),celery就會(huì)在需要時(shí)異步完成項(xiàng)目的

    2024年02月11日
    瀏覽(26)
  • 分布式定時(shí)任務(wù)

    分布式定時(shí)任務(wù)

    本文引用了谷粒商城的課程 定時(shí)任務(wù)是我們系統(tǒng)里面經(jīng)常要用到的一些功能。如每天的支付訂單要與支付寶進(jìn)行對(duì)賬操作、每個(gè)月定期進(jìn)行財(cái)務(wù)匯總、在服務(wù)空閑時(shí)定時(shí)統(tǒng)計(jì)當(dāng)天所有信息數(shù)據(jù)等。 定時(shí)任務(wù)有個(gè)非常流行的框架Quartz和Java原生API的Timer類。Spring框架也可以支持

    2023年04月15日
    瀏覽(25)
  • 分布式、鎖、延時(shí)任務(wù)

    分布式、鎖、延時(shí)任務(wù)

    Redis分布式鎖-這一篇全了解(Redission實(shí)現(xiàn)分布式鎖完美方案) ls / / 下有哪些子節(jié)點(diǎn) get /zookeeper 查看某個(gè)子節(jié)點(diǎn)內(nèi)容 create /aa “test” delete /aa set /aa “test01” 模式 默認(rèn)創(chuàng)建永久 create -e 創(chuàng)建臨時(shí) create -e /zz “hello zz” create -s 創(chuàng)建 有序節(jié)點(diǎn) create -s -e 臨時(shí)序列化節(jié)點(diǎn) 一次性的監(jiān)

    2024年02月09日
    瀏覽(31)
  • 分布式任務(wù)調(diào)度系統(tǒng)分析

    分布式任務(wù)調(diào)度系統(tǒng)分析

    首先,我們來思考一些幾個(gè)業(yè)務(wù)場景: XX 信用卡中心,每月 28 日凌晨 1:00 到 3:00 需要完成全網(wǎng)用戶當(dāng)月的費(fèi)用清單的生成 XX 電商平臺(tái),需要每天上午 9:00 開始向會(huì)員推送送優(yōu)惠券使用提醒 XX 公司,需要定時(shí)執(zhí)行 Python 腳本,清理掉某文件服務(wù)系統(tǒng)中無效的 tmp 文件 最開始,

    2023年04月22日
    瀏覽(39)
  • ray-分布式計(jì)算框架-集群與異步Job管理

    ray-分布式計(jì)算框架-集群與異步Job管理

    0. ray 簡介 ray是開源分布式計(jì)算框架,為并行處理提供計(jì)算層,用于擴(kuò)展AI與Python應(yīng)用程序,是ML工作負(fù)載統(tǒng)一工具包 Ray AI Runtime ML應(yīng)用程序庫集 Ray Core 通用分布式計(jì)算庫 Task -- Ray允許任意Python函數(shù)在單獨(dú)的Python worker上運(yùn)行,這些異步Python函數(shù)稱為任務(wù) Actor -- 從函數(shù)擴(kuò)展到類

    2023年04月25日
    瀏覽(61)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包