[發(fā)明專利]一種分布式系統(tǒng)執(zhí)行腳本的方法及裝置在審
| 申請(qǐng)?zhí)枺?/td> | 201911017059.0 | 申請(qǐng)日: | 2019-10-24 |
| 公開(kāi)(公告)號(hào): | CN110839064A | 公開(kāi)(公告)日: | 2020-02-25 |
| 發(fā)明(設(shè)計(jì))人: | 馬曉 | 申請(qǐng)(專利權(quán))人: | 蘇寧云計(jì)算有限公司 |
| 主分類號(hào): | H04L29/08 | 分類號(hào): | H04L29/08;G06F9/46;G06F9/50 |
| 代理公司: | 江蘇圣典律師事務(wù)所 32237 | 代理人: | 許峰 |
| 地址: | 210042 江蘇省南*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 系統(tǒng) 執(zhí)行 腳本 方法 裝置 | ||
本發(fā)明實(shí)施例公開(kāi)了一種分布式系統(tǒng)執(zhí)行腳本的方法,分布式系統(tǒng)包括協(xié)調(diào)者節(jié)點(diǎn)和參與者節(jié)點(diǎn),所述方法包括,獲取并解析腳本,所述腳本包括節(jié)點(diǎn)key值和操作命令;獲取參與者節(jié)點(diǎn)的狀態(tài)信息,所述狀態(tài)信息包括節(jié)點(diǎn)key分布槽位信息;根據(jù)所述節(jié)點(diǎn)key值和所述節(jié)點(diǎn)key分布槽位信息,發(fā)送所述操作命令給參與者節(jié)點(diǎn),采用本發(fā)明能夠?qū)崿F(xiàn)在分布式系統(tǒng)中執(zhí)行腳本,并且降低開(kāi)發(fā)成本,提高效率。本發(fā)明還公開(kāi)了相應(yīng)的裝置。
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,具體涉及一種分布式系統(tǒng)執(zhí)行腳本的方法及裝置。
背景技術(shù)
如今的計(jì)算機(jī)數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域中,會(huì)使用Redis內(nèi)存數(shù)據(jù)庫(kù)技術(shù),同時(shí),Lua腳本是一種開(kāi)發(fā)成本較低的腳本語(yǔ)言,可以將一段邏輯用腳本的方式組合在一起,可以解決Redis不具備原子性的問(wèn)題。
但是,如今的技術(shù)中,Redis開(kāi)源項(xiàng)目?jī)H支持單分片的Lua腳本命令,在很多業(yè)務(wù)場(chǎng)景中,需要采用分片的Redis集群,非單點(diǎn)模式。分片Redis集群執(zhí)行Lua腳本存在不準(zhǔn)確和不一致等問(wèn)題。因此迫切需要一種可以在分布式系統(tǒng)環(huán)境下執(zhí)行Lua腳本的方法。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種分布式系統(tǒng)執(zhí)行腳本的方法,用于在分布式環(huán)境下,執(zhí)行腳本命令,完成操作。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
依據(jù)本發(fā)明的一個(gè)方面,本發(fā)明的實(shí)施例提供一種分布式系統(tǒng)執(zhí)行腳本的方法,所述分布式系統(tǒng)包括協(xié)調(diào)者節(jié)點(diǎn)和參與者節(jié)點(diǎn),所述方法包括:
獲取并解析腳本,所述腳本包括節(jié)點(diǎn)key值和操作命令;
獲取參與者節(jié)點(diǎn)的狀態(tài)信息,所述狀態(tài)信息包括節(jié)點(diǎn)key分布槽位信息;
根據(jù)所述節(jié)點(diǎn)key值和所述節(jié)點(diǎn)key分布槽位信息,發(fā)送所述操作命令給參與者節(jié)點(diǎn)。
可選的,所述根據(jù)所述節(jié)點(diǎn)key值和所述節(jié)點(diǎn)key分布槽位信息,發(fā)送所述操作命令給參與者節(jié)點(diǎn),具體包括:
所述協(xié)調(diào)者節(jié)點(diǎn)向所述參與者節(jié)點(diǎn)發(fā)送狀態(tài)詢問(wèn)請(qǐng)求,收到所述參與者節(jié)點(diǎn)響應(yīng)后,向所述參與者節(jié)點(diǎn)發(fā)送預(yù)提交請(qǐng)求;
所述參與者節(jié)點(diǎn)接收所述預(yù)提交請(qǐng)求,執(zhí)行預(yù)提交操作,并記錄undo信息,同時(shí)向所述協(xié)調(diào)者節(jié)點(diǎn)返回響應(yīng);
所述協(xié)調(diào)者節(jié)點(diǎn)接收所述響應(yīng)后,向所有參與者節(jié)點(diǎn)發(fā)送執(zhí)行提交請(qǐng)求;
所述參與者節(jié)點(diǎn)接收所述執(zhí)行提交請(qǐng)求后,執(zhí)行事務(wù)提交,同時(shí)向所述協(xié)調(diào)者節(jié)點(diǎn)返回事務(wù)完成響應(yīng)。
可選的,所述協(xié)調(diào)者節(jié)點(diǎn)向所述參與者節(jié)點(diǎn)發(fā)送狀態(tài)詢問(wèn)請(qǐng)求,收到所述參與者節(jié)點(diǎn)響應(yīng)后,向所述參與者節(jié)點(diǎn)發(fā)送預(yù)提交請(qǐng)求,具體包括:
所述協(xié)調(diào)者節(jié)點(diǎn)向所述參與者節(jié)點(diǎn)發(fā)送狀態(tài)詢問(wèn)請(qǐng)求,所述參與者節(jié)點(diǎn)接收所述狀態(tài)詢問(wèn)請(qǐng)求后,根據(jù)自身狀態(tài),向所述協(xié)調(diào)者節(jié)點(diǎn)作出回復(fù)響應(yīng);當(dāng)狀態(tài)良好時(shí),則回復(fù)響應(yīng)為YES響應(yīng),當(dāng)狀態(tài)異常或不在線時(shí),則回復(fù)響應(yīng)為NO響應(yīng);
若所述協(xié)調(diào)者節(jié)點(diǎn)接收的回復(fù)響應(yīng)均為YES響應(yīng),則向所述參與者節(jié)點(diǎn)發(fā)送預(yù)提交請(qǐng)求。
可選的,若所述協(xié)調(diào)者節(jié)點(diǎn)接收的回復(fù)響應(yīng)中包含至少一個(gè)NO響應(yīng),則執(zhí)行事務(wù)的中斷,所述協(xié)調(diào)者節(jié)點(diǎn)向所有的參與者節(jié)點(diǎn)發(fā)送中止請(qǐng)求,所述參與者節(jié)點(diǎn)接收所述中止請(qǐng)求后,執(zhí)行事務(wù)中斷。
可選的,所述參與者節(jié)點(diǎn)接收所述預(yù)提交請(qǐng)求,執(zhí)行預(yù)提交操作,并記錄undo信息,同時(shí)向所述協(xié)調(diào)者節(jié)點(diǎn)返回響應(yīng)之后,還包括:
若所述協(xié)調(diào)者節(jié)點(diǎn)沒(méi)有接收到所述響應(yīng),則向所有參與者節(jié)點(diǎn)發(fā)送中止請(qǐng)求;
所述參與者節(jié)點(diǎn)接收所述中止請(qǐng)求之后,利用所述undo信息,執(zhí)行事務(wù)的回滾,并在完成回滾之后,釋放所有的事務(wù)資源,并向所述協(xié)調(diào)者節(jié)點(diǎn)發(fā)送響應(yīng);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于蘇寧云計(jì)算有限公司,未經(jīng)蘇寧云計(jì)算有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911017059.0/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 以注射方式執(zhí)行死刑的自動(dòng)執(zhí)行車的執(zhí)行床
- 過(guò)程執(zhí)行裝置、過(guò)程執(zhí)行方法以及過(guò)程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設(shè)備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設(shè)備和由該處理執(zhí)行設(shè)備執(zhí)行的方法
- 有序任務(wù)的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)
- 腳本處理方法及裝置
- 一種實(shí)現(xiàn)腳本引擎的系統(tǒng)及方法
- 代理自動(dòng)配置腳本的處理方法及代理自動(dòng)配置腳本服務(wù)器
- 一種腳本執(zhí)行方法、裝置及計(jì)算設(shè)備
- 腳本轉(zhuǎn)換方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 性能測(cè)試平臺(tái)腳本存儲(chǔ)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 一種實(shí)現(xiàn)測(cè)試腳本驗(yàn)證的方法及系統(tǒng)
- 結(jié)構(gòu)化查詢語(yǔ)言腳本審查方法及相關(guān)設(shè)備
- 基于FitNesse框架的數(shù)據(jù)驅(qū)動(dòng)腳本庫(kù)的方法、系統(tǒng)及介質(zhì)
- 一種腳本審計(jì)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





