軟件需求規(guī)格說(shuō)明書(shū)_第1頁(yè)
軟件需求規(guī)格說(shuō)明書(shū)_第2頁(yè)
軟件需求規(guī)格說(shuō)明書(shū)_第3頁(yè)
軟件需求規(guī)格說(shuō)明書(shū)_第4頁(yè)
軟件需求規(guī)格說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、任務(wù)調(diào)度中心后臺(tái)管理系統(tǒng)需求規(guī)格說(shuō)明書(shū)作者:完成日期:修訂歷史記錄日期版本說(shuō)明作者V1.0目錄TOCo1-5hz引言41.1目的41.2背景41.3概述41.4參考文獻(xiàn)4項(xiàng)目概述52.1產(chǎn)品特性52.2產(chǎn)品設(shè)計(jì)理念62.3用戶特點(diǎn)62.4一般約束62.5假設(shè)與依據(jù)7總體設(shè)計(jì)73.1架構(gòu)設(shè)計(jì)7設(shè)計(jì)思想7系統(tǒng)組成7架構(gòu)圖8調(diào)度中心HA(集群)8調(diào)度線程池8日志回調(diào)任務(wù)9調(diào)度日志9任務(wù)依賴10通訊數(shù)據(jù)加密10分片廣播、動(dòng)態(tài)分片10訪問(wèn)令牌(AccessToken)10故障轉(zhuǎn)移、失敗重試11任務(wù)超時(shí)控制11系統(tǒng)功能114.1功能需求11系統(tǒng)角色及登陸11工作流程124.2外部接口需求12用戶接口12硬

2、件接口12軟件接口13通信接口134.3性能需求134.4屬性13可用性13安全性13引言1.1目的該文檔首先給出項(xiàng)目的整體結(jié)構(gòu)和功能結(jié)構(gòu)概貌,試圖從總體架構(gòu)上給出整個(gè)系統(tǒng)的輪廓。同時(shí)對(duì)功能需求、性能需求進(jìn)行了詳細(xì)的描述。便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流,反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)以及確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。本文檔面向多種讀者對(duì)象:(1)項(xiàng)目經(jīng)理:項(xiàng)目經(jīng)理可以根據(jù)該文檔了解預(yù)期產(chǎn)品的功能,并據(jù)此進(jìn)行系統(tǒng)設(shè)計(jì)、項(xiàng)目管理。(2)設(shè)計(jì)員:對(duì)需求進(jìn)行分析,并設(shè)計(jì)出系統(tǒng),包括數(shù)據(jù)庫(kù)的設(shè)計(jì)。(3)程序員:了解系統(tǒng)功能,編寫(xiě)用戶手冊(cè)。(4)測(cè)試員:根據(jù)本文檔編寫(xiě)測(cè)試用例,并對(duì)軟件產(chǎn)

3、品進(jìn)行功能性測(cè)試和非功能性測(cè)試。(5)用戶:了解預(yù)期產(chǎn)品的功能和性能,并與分析人員一起對(duì)整個(gè)需求進(jìn)行討論和協(xié)商。在閱讀本文檔時(shí),首先要了解產(chǎn)品的功能概貌,然后可以根據(jù)自身的需要對(duì)每一功能進(jìn)行適當(dāng)?shù)牧私狻?.2背景本次待開(kāi)發(fā)的軟件為任務(wù)調(diào)度中心后臺(tái)管理系統(tǒng)。用戶通過(guò)使用該系統(tǒng)在移動(dòng)終端完成任務(wù)分配等操作。1.3概述該平臺(tái)是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)是統(tǒng)一管理任務(wù)調(diào)度平臺(tái)上調(diào)度任務(wù),負(fù)責(zé)出發(fā)調(diào)度執(zhí)行,并且提供任務(wù)管理平臺(tái)。1.4參考文獻(xiàn)1GB-T8567-2006,計(jì)算機(jī)軟件文檔編制規(guī)范S項(xiàng)目概述2.1產(chǎn)品特性1、簡(jiǎn)單:支持通過(guò)Web頁(yè)面對(duì)任務(wù)進(jìn)行CRUD操作,操作簡(jiǎn)單,容易上手;2

4、、動(dòng)態(tài):支持動(dòng)態(tài)修改任務(wù)狀態(tài)、暫停/恢復(fù)任務(wù),以及終止運(yùn)行中任務(wù),即時(shí)生效;3、調(diào)度中心HA(中心式):調(diào)度采用中心式設(shè)計(jì),“調(diào)度中心”基于集群Quartz實(shí)現(xiàn)并支持集群部署,可保證調(diào)度中心HA4、執(zhí)行器HA(分布式):任務(wù)分布式執(zhí)行,任務(wù)”執(zhí)行器”支持集群部署,可保證任務(wù)執(zhí)行HA5、注冊(cè)中心:執(zhí)行器會(huì)周期性自動(dòng)注冊(cè)任務(wù),調(diào)度中心將會(huì)自動(dòng)發(fā)現(xiàn)注冊(cè)的任務(wù)并觸發(fā)執(zhí)行。同時(shí),也支持手動(dòng)錄入執(zhí)行器地址;6、彈性擴(kuò)容縮容:一旦有新執(zhí)行器機(jī)器上線或者下線,下次調(diào)度時(shí)將會(huì)重新分配任務(wù);7、路由策略:執(zhí)行器集群部署時(shí)提供豐富的路由策略,包括:第一個(gè)、最后一個(gè)、輪詢、隨機(jī)、一致性HASH最不經(jīng)常使用、最近最久未

5、使用、故障轉(zhuǎn)移、忙碌轉(zhuǎn)移等;8、故障轉(zhuǎn)移:任務(wù)路由策略選擇故障轉(zhuǎn)移”情況下,如果執(zhí)行器集群中某一臺(tái)機(jī)器故障,將會(huì)自動(dòng)Failover切換到一臺(tái)正常的執(zhí)行器發(fā)送調(diào)度請(qǐng)求。9、失敗處理策略;調(diào)度失敗時(shí)的處理策略,策略包括:失敗告警、失敗重試;10、失敗重試:調(diào)度中心調(diào)度失敗且啟用”調(diào)度失敗重試”策略時(shí),將會(huì)自動(dòng)重試一次;執(zhí)行器執(zhí)行失敗且啟用”執(zhí)行失敗重試”策略,或回調(diào)失敗重試狀態(tài)時(shí),也將會(huì)自動(dòng)重試一次;11、阻塞處理策略:調(diào)度過(guò)于密集執(zhí)行器來(lái)不及處理時(shí)的處理策略,策略包括:?jiǎn)螜C(jī)串行(默認(rèn))、丟棄后續(xù)調(diào)度、覆蓋之前調(diào)度;12、任務(wù)超時(shí)控制:支持設(shè)置任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)的情況下,將會(huì)主動(dòng)中斷任務(wù)

6、;13、分片廣播任務(wù):執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇”分片廣播情況下,次任務(wù)調(diào)度將會(huì)廣播觸發(fā)集群中所有執(zhí)行器執(zhí)行一次任務(wù),可根據(jù)分片參數(shù)開(kāi)發(fā)分片任務(wù);14、動(dòng)態(tài)分片:分片廣播任務(wù)以執(zhí)行器為維度進(jìn)行分片,支持動(dòng)態(tài)擴(kuò)容執(zhí)行器集群從而動(dòng)態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。15、事件觸發(fā):除了Cron方式和任務(wù)依賴方式”觸發(fā)任務(wù)執(zhí)行之外,支持基于事件的觸發(fā)任務(wù)方式。調(diào)度中心提供觸發(fā)任務(wù)單次執(zhí)行的API服務(wù),可根據(jù)業(yè)務(wù)事件靈活觸發(fā)。16、任務(wù)進(jìn)度監(jiān)控:支持實(shí)時(shí)監(jiān)控任務(wù)進(jìn)度;17、Rolling實(shí)時(shí)日志:支持在線查看調(diào)度結(jié)果,并且支持以Rolling

7、方式實(shí)時(shí)查看執(zhí)行器輸出的完整的執(zhí)行日志;18、GLUE提供WeblDE,支持在線開(kāi)發(fā)任務(wù)邏輯代碼,動(dòng)態(tài)發(fā)布,實(shí)時(shí)編譯生效,省略部署上線的過(guò)程。支持30個(gè)版本的歷史版本回溯。19、腳本任務(wù):支持以GLUE模式開(kāi)發(fā)和運(yùn)行腳本任務(wù),包括Shell、Python、NodeJS等類型腳本;20、任務(wù)依賴:支持配置子任務(wù)依賴,當(dāng)父任務(wù)執(zhí)行結(jié)束且執(zhí)行成功后將會(huì)主動(dòng)觸發(fā)一次子任務(wù)的執(zhí)行,多個(gè)子任務(wù)用逗號(hào)分隔;21、一致性:“調(diào)度中心”通過(guò)DB鎖保證集群分布式調(diào)度的一致性,一次任務(wù)調(diào)度只會(huì)觸發(fā)一次執(zhí)行;22、自定義任務(wù)參數(shù):支持在線配置調(diào)度任務(wù)入?yún)ⅲ磿r(shí)生效;23、調(diào)度線程池:調(diào)度系統(tǒng)多線程觸發(fā)調(diào)度運(yùn)行,確保調(diào)

8、度精確執(zhí)行,不被堵塞;24、數(shù)據(jù)加密:調(diào)度中心和執(zhí)行器之間的通訊進(jìn)行數(shù)據(jù)加密,提升調(diào)度信息安全性;25、郵件報(bào)警:任務(wù)失敗時(shí)支持郵件報(bào)警,支持配置多郵件地址群發(fā)報(bào)警郵件;26、推送maven中央倉(cāng)庫(kù):將會(huì)把最新穩(wěn)定版推送到maven中央倉(cāng)庫(kù),方便用戶接入和使用;27、運(yùn)行報(bào)表:支持實(shí)時(shí)查看運(yùn)行數(shù)據(jù),如任務(wù)數(shù)量、調(diào)度次數(shù)、執(zhí)行器數(shù)量等;以及調(diào)度報(bào)表,如調(diào)度日期分布圖,調(diào)度成功分布圖等;28、全異步:系統(tǒng)底層實(shí)現(xiàn)全部異步化,針對(duì)密集調(diào)度進(jìn)行流量削峰,理論上支持任意時(shí)長(zhǎng)任務(wù)的運(yùn)行;2.2產(chǎn)品設(shè)計(jì)理念當(dāng)前各大行業(yè)人群密集,因大量繁瑣的任務(wù)分配不及時(shí)而困擾,繁瑣的根源便是郵件的收發(fā)、電話溝通,需要人工分

9、配任務(wù),最終人工匯總表格,工作量大且出錯(cuò)率高。任務(wù)調(diào)度中心系統(tǒng)致力于通過(guò)平臺(tái)便捷地完成此項(xiàng)工作,且大大降低出錯(cuò)率。2.3用戶特點(diǎn)本系統(tǒng)的最終用戶群體普遍接受高等教育,學(xué)習(xí)及適應(yīng)能力強(qiáng)。能快速適應(yīng)該軟件,并充分感受到在任務(wù)調(diào)度中心的效能變化,提出合理改進(jìn)意見(jiàn)。操作人員及維護(hù)人員為了解該工作的整體流程,深入用戶交流,便于調(diào)整軟件功能,實(shí)現(xiàn)客戶需求。2.4一般約束進(jìn)行本系統(tǒng)開(kāi)發(fā)工作的約束條件如下:開(kāi)發(fā)周期短:兩個(gè)月的開(kāi)發(fā)時(shí)間需要開(kāi)發(fā)者合理規(guī)劃時(shí)間,做到多項(xiàng)任務(wù)并發(fā)。所采用的方法與技術(shù)有限:項(xiàng)目團(tuán)隊(duì)成員的技術(shù)水平不夠成熟,需要在開(kāi)發(fā)中并發(fā)學(xué)習(xí)多種技術(shù)和能力。2.5假設(shè)與依據(jù)本項(xiàng)目是否能夠成功實(shí)施,主要

10、取決于以下的條件:(1)團(tuán)隊(duì)成員的積極合作配合,為了項(xiàng)目的開(kāi)發(fā)和實(shí)施,對(duì)個(gè)人時(shí)間進(jìn)行合理規(guī)劃同時(shí)為團(tuán)隊(duì)做出合理犧牲,配合隊(duì)友完成任務(wù)。(2)完整詳細(xì)的功能和性能需求資料,以便于團(tuán)隊(duì)對(duì)其進(jìn)行分析,從而形成完善的軟件需求。(3)團(tuán)隊(duì)掌握先進(jìn)的能夠適用于該項(xiàng)目的技術(shù),這是系統(tǒng)的性能是否優(yōu)化和項(xiàng)目能否成功的保證。總體設(shè)計(jì)3.1架構(gòu)設(shè)計(jì)設(shè)計(jì)思想將調(diào)度行為抽象形成“調(diào)度中心”公共平臺(tái),而平臺(tái)自身并不承擔(dān)業(yè)務(wù)邏輯,“調(diào)度中心”負(fù)責(zé)發(fā)起調(diào)度請(qǐng)求。將任務(wù)抽象成分散的JobHandler,交由“執(zhí)行器”統(tǒng)一管理,“執(zhí)行器”負(fù)責(zé)接收調(diào)度請(qǐng)求并執(zhí)行對(duì)應(yīng)的JobHandler中業(yè)務(wù)邏輯。因此,“調(diào)度”和“任務(wù)”兩部分可

11、以相互解耦,提高系統(tǒng)整體穩(wěn)定性和擴(kuò)展性;系統(tǒng)組成調(diào)度模塊(調(diào)度中心):負(fù)責(zé)管理調(diào)度信息,按照調(diào)度配置發(fā)出調(diào)度請(qǐng)求,自身不承擔(dān)業(yè)務(wù)代碼。調(diào)度系統(tǒng)與任務(wù)解耦,提高了系統(tǒng)可用性和穩(wěn)定性,同時(shí)調(diào)度系統(tǒng)性能不再受限于任務(wù)模塊;支持可視化、簡(jiǎn)單且動(dòng)態(tài)的管理調(diào)度信息,包括任務(wù)新建,更新,刪除,GLUE開(kāi)發(fā)和任務(wù)報(bào)警等,所有上述操作都會(huì)實(shí)時(shí)生效,同時(shí)支持監(jiān)控調(diào)度結(jié)果以及執(zhí)行日志,支持執(zhí)行器Failover。負(fù)責(zé)接收調(diào)度請(qǐng)求并執(zhí)行任務(wù)邏輯。任務(wù)模塊專注于任務(wù)的執(zhí)執(zhí)行模塊(執(zhí)行器)接收“調(diào)度中心”的執(zhí)行請(qǐng)求、終止請(qǐng)求和日志行等操作,開(kāi)發(fā)和維護(hù)更加簡(jiǎn)單和高效;請(qǐng)求等。架構(gòu)圖曰赤胃豆PolingGLUE感卓日玉調(diào)旄中

12、心境抒日越(Lc也立件!訴直請(qǐng)厭QueuelIAP1)執(zhí)打恃調(diào)度中心HA(集群)基于Quartz的集群方案,數(shù)據(jù)庫(kù)選用Mysql;集群分布式并發(fā)環(huán)境中使用QUART定時(shí)任務(wù)調(diào)度,會(huì)在各個(gè)節(jié)點(diǎn)會(huì)上報(bào)任務(wù),存到數(shù)據(jù)庫(kù)中,執(zhí)行時(shí)會(huì)從數(shù)據(jù)庫(kù)中取出觸發(fā)器來(lái)執(zhí)行,如果觸發(fā)器的名稱和執(zhí)行時(shí)間相同,則只有一個(gè)節(jié)點(diǎn)去執(zhí)行此任務(wù)。調(diào)度線程池調(diào)度采用線程池方式實(shí)現(xiàn),避免單線程因阻塞而引起任務(wù)調(diào)度延遲。任務(wù)調(diào)度中心系統(tǒng)中業(yè)務(wù)邏輯在遠(yuǎn)程執(zhí)行器執(zhí)行,全異步化設(shè)計(jì),調(diào)度中心每次觸發(fā)調(diào)異步運(yùn)行;度時(shí)僅發(fā)送一次調(diào)度請(qǐng)求,執(zhí)行器會(huì)將請(qǐng)求存入執(zhí)行隊(duì)列并且立即響應(yīng)調(diào)度中心,相比直接在quartz的QuartzJobBean中執(zhí)行業(yè)務(wù)

13、邏輯,極大的降低了調(diào)度線程占用時(shí)間;任務(wù)調(diào)度中心系統(tǒng)中每個(gè)邏輯非?!拜p”,單個(gè)一次運(yùn)行平均耗時(shí)基本在10ms之內(nèi)(基本為一次請(qǐng)求的網(wǎng)絡(luò)開(kāi)銷);因此,可以保證使用有限的線程支撐大量的并發(fā)運(yùn)行;理論支撐任務(wù)量公式如下:理論支撐任務(wù)量=線程數(shù)配置/平均調(diào)度頻率(每秒)理論支撐任務(wù)量=線程數(shù)配置/平均調(diào)度頻率(每秒)平均觸發(fā)耗時(shí)(單位S)實(shí)際場(chǎng)景中,由于調(diào)度中心與執(zhí)行器ping延遲不同、DB讀寫(xiě)耗時(shí)不同、任務(wù)調(diào)度密集程度不同,會(huì)導(dǎo)致任務(wù)量上限會(huì)上下波動(dòng)。如若需要支撐更多的任務(wù)量,可以通過(guò)”調(diào)大調(diào)度線程數(shù)”、降低調(diào)度中心與執(zhí)行器ping延遲”和”提升機(jī)器配置”幾種方式實(shí)現(xiàn)。日志回調(diào)任務(wù)調(diào)度模塊的調(diào)度中心

14、”作為Web服務(wù)部署時(shí),一方面承擔(dān)調(diào)度中心功能,另一方面也為執(zhí)行器提供API服務(wù)調(diào)度日志調(diào)度中心每次進(jìn)行任務(wù)調(diào)度,都會(huì)記錄一條任務(wù)日志,任務(wù)日志主要包括以下三部分內(nèi)容:任務(wù)信息:包括執(zhí)行器地址”、“JobHandler和執(zhí)行參數(shù)”等屬性,點(diǎn)擊任務(wù)ID按鈕可查看,根據(jù)這些參數(shù),可以精確的定位任務(wù)執(zhí)行的具體機(jī)器和任務(wù)代碼。調(diào)度信息:包括調(diào)度時(shí)間”、調(diào)度結(jié)果和和調(diào)度日志”等,根據(jù)這些參數(shù),可以了解調(diào)度中心”發(fā)起調(diào)度請(qǐng)求時(shí)具體情況。執(zhí)行信息:包括執(zhí)行時(shí)間和執(zhí)行結(jié)果和和執(zhí)行日志”等,根據(jù)這些參數(shù),可以了解在執(zhí)行器”端任務(wù)執(zhí)行的具體情況;調(diào)度日志,針對(duì)單次調(diào)度,屬性說(shuō)明如下:執(zhí)行器地址:任務(wù)執(zhí)行的機(jī)器地址

15、;JobHandler:Bean模式表示任務(wù)執(zhí)行的JobHandler名稱;任務(wù)參數(shù):任務(wù)執(zhí)行的入?yún)ⅲ徽{(diào)度時(shí)間:調(diào)度中心,發(fā)起調(diào)度的時(shí)間;調(diào)度結(jié)果:調(diào)度中心,發(fā)起調(diào)度的結(jié)果,SUCCESS或FAIL;調(diào)度備注:調(diào)度中心,發(fā)起調(diào)度的備注信息,如地址心跳檢測(cè)日志等;執(zhí)行時(shí)間:執(zhí)行器,任務(wù)執(zhí)行結(jié)束后回調(diào)的時(shí)間;執(zhí)行結(jié)果:執(zhí)行器,任務(wù)執(zhí)行的結(jié)果,SUCCESS或FAIL;執(zhí)行備注:執(zhí)行器,任務(wù)執(zhí)行的備注信息,如異常日志等;執(zhí)行日志:任務(wù)執(zhí)行過(guò)程中,業(yè)務(wù)代碼中打印的完整執(zhí)行日志。任務(wù)依賴任務(wù)調(diào)度中心每個(gè)任務(wù)都對(duì)應(yīng)有一個(gè)任務(wù)ID,同時(shí),每個(gè)任務(wù)支持設(shè)置屬性“子任務(wù)ID”,因此,通過(guò)“任務(wù)ID”可以匹配任務(wù)

16、依賴關(guān)系。當(dāng)父任務(wù)執(zhí)行結(jié)束并且執(zhí)行成功時(shí),將會(huì)根據(jù)“子任務(wù)ID”匹配子任務(wù)依賴,如果匹配到子任務(wù),將會(huì)主動(dòng)觸發(fā)一次子任務(wù)的執(zhí)行。在任務(wù)日志界面,點(diǎn)擊任務(wù)的“執(zhí)行備注”的“查看”按鈕,可以看到匹配子任務(wù)以及觸發(fā)子任務(wù)執(zhí)行的日志信息,如無(wú)信息則表示未觸發(fā)子任務(wù)執(zhí)行。通訊數(shù)據(jù)加密調(diào)度中心向執(zhí)行器發(fā)送的調(diào)度請(qǐng)求時(shí)使用RequestModel和ResponseModel兩個(gè)對(duì)象圭寸裝調(diào)度請(qǐng)求參數(shù)和響應(yīng)數(shù)據(jù),在進(jìn)行通訊之前底層會(huì)將上述兩個(gè)對(duì)象對(duì)象序列化,并進(jìn)行數(shù)據(jù)協(xié)議以及時(shí)間戳檢驗(yàn),從而達(dá)到數(shù)據(jù)加密的功能;分片廣播、動(dòng)態(tài)分片執(zhí)行器集群部署時(shí),任務(wù)路由策略選擇”分片廣播”情況下,一次任務(wù)調(diào)度將會(huì)廣播觸發(fā)對(duì)應(yīng)

17、集群中所有執(zhí)行器執(zhí)行一次任務(wù),同時(shí)傳遞分片參數(shù);可根據(jù)分片參數(shù)開(kāi)發(fā)分片任務(wù);分片廣播”以執(zhí)行器為維度進(jìn)行分片,支持動(dòng)態(tài)擴(kuò)容執(zhí)行器集群從而動(dòng)態(tài)增加分片數(shù)量,協(xié)同進(jìn)行業(yè)務(wù)處理;在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)操作時(shí)可顯著提升任務(wù)處理能力和速度。分片廣播”和普通任務(wù)開(kāi)發(fā)流程一致,不同之處在于可以可以獲取分片參數(shù),獲取分片參數(shù)進(jìn)行分片業(yè)務(wù)處理。訪問(wèn)令牌(AccessToken)為提升系統(tǒng)安全性,調(diào)度中心和執(zhí)行器進(jìn)行安全性校驗(yàn),雙方AccessToken匹配才允許通訊;調(diào)度中心和執(zhí)行器,可通過(guò)配置項(xiàng)xxl.job.accessToken進(jìn)行AccessToken的設(shè)置。調(diào)度中心和執(zhí)行器,如果需要正常通訊,只有兩種設(shè)置

18、;一:調(diào)度中心和執(zhí)行器,均不設(shè)置AccessToken;關(guān)閉安全性校驗(yàn);二:調(diào)度中心和執(zhí)行器,設(shè)置了相同的AccessToken;322故障轉(zhuǎn)移、失敗重試一次完整任務(wù)流程包括”調(diào)度(調(diào)度中心)+執(zhí)行(執(zhí)行器)兩個(gè)階段故障轉(zhuǎn)移”發(fā)生在調(diào)度階段,在執(zhí)行器集群部署時(shí),如果某一臺(tái)執(zhí)行器發(fā)生故障,該策略支持自動(dòng)進(jìn)行Failover切換到一臺(tái)正常的執(zhí)行器機(jī)器并且完成調(diào)度請(qǐng)求流程。失敗重試”發(fā)生在”調(diào)度+執(zhí)行兩個(gè)階段,如下調(diào)度失敗重試:調(diào)度中心調(diào)度失敗且啟用”調(diào)度失敗重試”策略時(shí),將會(huì)自動(dòng)重試一次;執(zhí)行失敗重試:執(zhí)行器執(zhí)行失敗且啟用”執(zhí)行失敗重試”策略,或回調(diào)失敗重試狀態(tài)(IJobHandler.FAIL_

19、RETRY)時(shí),也將會(huì)自動(dòng)重試一次;任務(wù)超時(shí)控制支持設(shè)置任務(wù)超時(shí)時(shí)間,任務(wù)運(yùn)行超時(shí)的情況下,將會(huì)主動(dòng)中斷任務(wù);4系統(tǒng)功能4.1功能需求系統(tǒng)角色及登陸該系統(tǒng)共有三種角色:JobClient(作業(yè)客戶機(jī)),JobTracker(作業(yè)跟蹤器),TaskTracker(守護(hù)進(jìn)程者)。所有角色都具有登陸功能,根據(jù)角色不同登陸后進(jìn)入各個(gè)角色所對(duì)應(yīng)的頁(yè)面。登錄界面用戶通過(guò)輸入賬號(hào)密碼,點(diǎn)擊登錄,登錄不同的賬號(hào)自動(dòng)判斷角色,進(jìn)入不同的界面。JobClient:主要負(fù)責(zé)提交任務(wù)和接收任務(wù)執(zhí)行反饋結(jié)果。JobTracker:負(fù)責(zé)接收并分配任務(wù),任務(wù)調(diào)度。TaskTracker:負(fù)責(zé)執(zhí)行任務(wù),執(zhí)行完反饋給JobTr

20、acker。工作流程JobClient提交一個(gè)任務(wù)給JobTracker,這里我提供了兩種客戶端API,種是如果JobTracker不存在或者提交失敗,直接返回提交失敗。另一種客戶端是重試客戶端,如果提交失敗,先存儲(chǔ)到本地leveldb(可以使用NFS來(lái)達(dá)到同個(gè)節(jié)點(diǎn)組共享leveldb文件的目的,多線程訪問(wèn),做了文件鎖處理),返回給客戶端提交成功的信息,待JobTracker可用的時(shí)候,再將任務(wù)提交。JobTracker收到JobClient提交來(lái)的任務(wù),先生成一個(gè)唯一的JoblD。然后將任務(wù)儲(chǔ)存在Mongo集群中。JobTracker發(fā)現(xiàn)有(任務(wù)執(zhí)行的)可用的TaskTracker節(jié)點(diǎn)(組)

21、之后,將優(yōu)先級(jí)最大,最先提交的任務(wù)分發(fā)給TaskTracker這里JobTracker會(huì)優(yōu)先分配給比較空閑的TaskTracker節(jié)點(diǎn),達(dá)到負(fù)載均衡。TaskTracker收到JobTracker分發(fā)來(lái)的任務(wù)之后,執(zhí)行。執(zhí)行完畢之后,再反饋任務(wù)執(zhí)行結(jié)果給JobTracker(成功or失敗失敗有失敗錯(cuò)誤信息),如果發(fā)現(xiàn)JobTacker不可用,那么存儲(chǔ)本地leveldb,等待TaskTracker可用的時(shí)候再反饋。反饋結(jié)果的同時(shí),詢問(wèn)JobTacker有沒(méi)有新的任務(wù)要執(zhí)行。JobTacker收到TaskTracker節(jié)點(diǎn)的任務(wù)結(jié)果信息,生成并插入(mongo)任務(wù)執(zhí)行日志。根據(jù)任務(wù)信息決定要不要

22、反饋給客戶端。不需要反饋的直接刪除,需要反饋的(同樣JobClient不可用存儲(chǔ)文件,等待可用重發(fā))。JobClient收到任務(wù)執(zhí)行結(jié)果,進(jìn)行自己想要的邏輯處理。4.2外部接口需求用戶接口本系統(tǒng)采用B/S架構(gòu),所有界面使用APP風(fēng)格,用戶界面的具體細(xì)在功能需求文檔中描述。硬件接口無(wú)特殊需求。423軟件接口無(wú)特殊需求。通信接口無(wú)特殊需求。4.3性能需求非功能性需求當(dāng)前尚未形成完整文檔。4.4屬性可用性(1)方便操作,操作流程合理。盡量從用戶角度出發(fā),以方便使用本產(chǎn)品。如:新增信息時(shí),敲入回車鍵光標(biāo)的自動(dòng)跳轉(zhuǎn)、輸入法的自動(dòng)轉(zhuǎn)換,信息檢索時(shí)輸入漢語(yǔ)簡(jiǎn)拼快速檢索到(2)控制必錄入項(xiàng)。本系統(tǒng)能夠?qū)Ρ仨氫?/p>

23、入的項(xiàng)目進(jìn)行控制,使用戶能夠確保信息錄入的完整。同時(shí)對(duì)必錄入項(xiàng)進(jìn)行有效的統(tǒng)一的提示。(4)容錯(cuò)能力。系統(tǒng)具有一定的容錯(cuò)和抗干擾能力,在非硬件故障或非通訊故障時(shí),系統(tǒng)能夠保證正常運(yùn)行,并有足夠的提示信息幫助用戶有效正確地完成任務(wù)。(5)操作完成時(shí)有統(tǒng)一規(guī)范的提示信息。例如刪除操作時(shí),系統(tǒng)可提示警示框“您確認(rèn)刪除記錄嗎?操作不可恢復(fù)!”,用戶點(diǎn)擊確認(rèn)后,系統(tǒng)才執(zhí)行刪除操作,刪除后可直接返回相關(guān)頁(yè)面。安全性(1)權(quán)限控制根據(jù)不同用戶角色,設(shè)置相應(yīng)權(quán)限,用戶的重要操作都做相應(yīng)的日志記錄以備查看,有權(quán)限的用戶禁止使用系統(tǒng)。(2)重要數(shù)據(jù)加密對(duì)一些重要的數(shù)據(jù)按一定的算法進(jìn)行加密,如用戶口令、重要參數(shù)等。(

24、3)數(shù)據(jù)備份允許用戶進(jìn)行數(shù)據(jù)的備份和恢復(fù),以彌補(bǔ)數(shù)據(jù)的破壞和丟失。(4)記錄日志本系統(tǒng)應(yīng)該能夠記錄系統(tǒng)運(yùn)行時(shí)所發(fā)生的所有錯(cuò)誤,包括本機(jī)錯(cuò)誤和網(wǎng)絡(luò)錯(cuò)誤。這些錯(cuò)誤記錄便于查找錯(cuò)誤的原因。日志同時(shí)記錄用戶的關(guān)鍵性操作信息。443可維護(hù)性當(dāng)前尚未形成完整文檔。5.系統(tǒng)開(kāi)發(fā)計(jì)劃和時(shí)間規(guī)劃該系統(tǒng)分為5個(gè)階段執(zhí)行,系統(tǒng)為期六個(gè)月,項(xiàng)目參與總?cè)藬?shù)為20人。5.1系統(tǒng)啟動(dòng)階段此階段處于整個(gè)項(xiàng)目實(shí)施工作的最前期,由成立項(xiàng)目組、前期調(diào)研、編制總體項(xiàng)目計(jì)劃、啟動(dòng)會(huì)四個(gè)階段組成(大體為以上四個(gè)階段)。成立項(xiàng)目組一般項(xiàng)目合同簽署完成后,公司會(huì)通過(guò)項(xiàng)目實(shí)施流程表先通過(guò)“市場(chǎng)管理中心”審核檢閱,主要包括合同相關(guān)款項(xiàng)及系統(tǒng)簽署

25、的相應(yīng)功能模塊是否符合要求;審核結(jié)束后到項(xiàng)目部部門(mén)經(jīng)理接到實(shí)施申請(qǐng)后,任命該項(xiàng)目的項(xiàng)目經(jīng)理,指定項(xiàng)目目標(biāo),由項(xiàng)目經(jīng)理指定項(xiàng)目組成員及成員任務(wù),并報(bào)相關(guān)分管副總或者總經(jīng)理。前期需求調(diào)研項(xiàng)目經(jīng)理及項(xiàng)目組成員,在商務(wù)人員或者銷售人員配合下,建立與用戶的聯(lián)系,對(duì)合同中簽訂的系統(tǒng)主要功能模塊進(jìn)行調(diào)研。確定客戶他們的需求和期望,如何修改完善滿足和影響這些需求、期望以確保項(xiàng)目能夠成功。若涉及到相關(guān)的硬件設(shè)備,在做需求調(diào)研的同時(shí),需協(xié)調(diào)系統(tǒng)集成部門(mén)完成硬件服務(wù)器及網(wǎng)絡(luò)環(huán)境的搭建。制定項(xiàng)目總體計(jì)劃項(xiàng)目總體計(jì)劃文檔主要介紹項(xiàng)目建設(shè)目標(biāo)、主要項(xiàng)目實(shí)施階段、里程碑、可交付成果。通常包括以下幾方面內(nèi)容:項(xiàng)目建設(shè)背景描述

26、,項(xiàng)目建設(shè)目標(biāo)、主要項(xiàng)目階段、里程碑、可交付成果。所計(jì)劃的職責(zé)分配參與配合的相應(yīng)客戶人員;溝通管理計(jì)劃,確定客戶人員溝通的需要。啟動(dòng)會(huì)項(xiàng)目組成員與用戶共同召開(kāi)的宣布該項(xiàng)目正式開(kāi)始的會(huì)議5.2需求調(diào)研確定階段此階段的主要工作是項(xiàng)目實(shí)施人員向用戶調(diào)研后用戶對(duì)系統(tǒng)的需求,包括系統(tǒng)流程調(diào)研、功能需求調(diào)研、數(shù)據(jù)查詢需求調(diào)研等,實(shí)施人員調(diào)研完成后,會(huì)編寫(xiě)相關(guān)文檔,并交付用戶進(jìn)行確認(rèn)并且簽字確認(rèn),待用戶對(duì)文檔上所提到的需求確認(rèn)簽字完畢后,項(xiàng)目實(shí)施人員將提交該需求調(diào)研分析書(shū)給相關(guān)副總或總經(jīng)理簽字,簽字完成后以此為依據(jù)提交開(kāi)發(fā)進(jìn)行軟件功能的修改完善。進(jìn)行需求調(diào)研前期準(zhǔn)備制定需求文檔內(nèi)部評(píng)審是否通過(guò)需求文檔項(xiàng)目組、項(xiàng)目經(jīng)理、銷售等人員根據(jù)合同要求和項(xiàng)目實(shí)際情況對(duì)需求文檔草稿進(jìn)行評(píng)審,如評(píng)審?fù)ㄟ^(guò),領(lǐng)導(dǎo)簽字確認(rèn),如評(píng)審不通過(guò)則重新修改和客戶再次確認(rèn)相關(guān)細(xì)節(jié)。簽署需求文檔簽署需求調(diào)研計(jì)劃,則作為

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論