Cadence分布式任務(wù)編排和調(diào)度引擎
Cadence 是 Uber 開發(fā)的一個(gè)分布式,可擴(kuò)展,持久且高度可用的編排引擎,以可擴(kuò)展和彈性的方式執(zhí)行異步長(zhǎng)期運(yùn)行的業(yè)務(wù)邏輯。
業(yè)務(wù)邏輯被建模為工作流和活動(dòng)。工作流程是協(xié)調(diào)邏輯的實(shí)現(xiàn)。其唯一目的是協(xié)調(diào)活動(dòng)執(zhí)行?;顒?dòng)是業(yè)務(wù)邏輯中特定任務(wù)的實(shí)現(xiàn)。工作流和活動(dòng)實(shí)現(xiàn)在工作進(jìn)程中托管和執(zhí)行。這些工作人員長(zhǎng)期輪詢Cadence服務(wù)器以執(zhí)行任務(wù),通過調(diào)用工作流或活動(dòng)實(shí)現(xiàn)來(lái)執(zhí)行任務(wù),并將任務(wù)結(jié)果返回給Cadence服務(wù)器。此外,工作人員可以實(shí)現(xiàn)為完全無(wú)狀態(tài)的服務(wù),這反過來(lái)允許無(wú)限制的水平擴(kuò)展。
Cadence服務(wù)器代理并持久保存在工作流執(zhí)行期間生成的任務(wù)和事件,這為工作流執(zhí)行提供了某些可伸縮性和可靠性保證。單個(gè)活動(dòng)執(zhí)行不具有容錯(cuò)能力,因?yàn)樗赡苡捎诟鞣N原因而失敗。但是,確定在哪種順序以及如何(位置,輸入?yún)?shù),超時(shí)等)活動(dòng)被執(zhí)行的工作流程保證在各種故障條件下繼續(xù)執(zhí)行。
安裝和運(yùn)行:
# for OS X brew install cassandra # start cassandra /usr/local/bin/cassandra
- 安裝 cassandra 模型:
make install-schema
- 啟動(dòng)服務(wù)
./cadence-server start
Cadence 還提供一個(gè)基于 Web 的管理界面 https://github.com/uber/cadence-web
