本發(fā)明涉及計算機、信息處理等技術(shù)領(lǐng)域,具體地說是一種創(chuàng)建cf服務(wù)實例的方法及裝置。
背景技術(shù):
cf(cloudfoundry)是vmware推出的業(yè)界第一個開源paas云平臺,它支持多種框架、語言、運行時環(huán)境、云平臺及應(yīng)用服務(wù),使開發(fā)人員能夠在幾秒鐘內(nèi)進(jìn)行應(yīng)用程序的部署和擴展,無需擔(dān)心任何基礎(chǔ)架構(gòu)的問題。同時,它本身是一個基于rubyonrails的由多個相對獨立的子系統(tǒng)通過消息機制組成的分布式系統(tǒng),使平臺在各層級都可水平擴展,既能在大型數(shù)據(jù)中心里運行,也能運行在一臺桌面電腦中,二者使用相同的代碼庫。
作為新一代云應(yīng)用平臺,cloudfoundry專為私有云計算環(huán)境、企業(yè)級數(shù)據(jù)中心和公有云服務(wù)提供商所打造。cloudfoundry云平臺可以簡化現(xiàn)代應(yīng)用程序的開發(fā)、交付和運行過程,在面對多種公有云和私有云選擇、符合業(yè)界標(biāo)準(zhǔn)的高效開發(fā)框架以及應(yīng)用基礎(chǔ)設(shè)施服務(wù)時,可以顯著提高開發(fā)者在云環(huán)境中部署和運行應(yīng)用程序的能力。
app在運行的時候通常需要依賴外部的一些服務(wù),比如數(shù)據(jù)庫服務(wù)、緩存服務(wù)、短信郵件服務(wù)等等。servicebroker就是app接入服務(wù)的一種方式。比如我們要接入mysql服務(wù),只要實現(xiàn)cloudfoundry要求的servicebrokerapi即可。servicebroker就是實現(xiàn)了cf規(guī)定的一組restapi的服務(wù)端程序,它作用于cf與服務(wù)的資源池中間,cf通過調(diào)用servicebroker上這些規(guī)定的restapi對服務(wù)資源池進(jìn)行管理,而servicebroker實際執(zhí)行這些資源池管理操作。
cf的關(guān)鍵之一是對服務(wù)實例的創(chuàng)建,在創(chuàng)建服務(wù)實例時,很多服務(wù)在接入cf之前必須事先創(chuàng)建好,無法實現(xiàn)服務(wù)的實時創(chuàng)建,靈活性便大打折扣。此外,cf框架規(guī)定,cf在服務(wù)實例創(chuàng)建時有2分鐘的時間限制,超時則為創(chuàng)建超時?,F(xiàn)實中很多平臺的服務(wù)創(chuàng)建都是實時的,cf的這種時限機制使得跨平臺對接遙不可及。因此,需要一種靈活的方式,解決上述問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對現(xiàn)有技術(shù)的不足,提供一種創(chuàng)建cf服務(wù)實例的方法及裝置,解決現(xiàn)有cf無法實現(xiàn)服務(wù)實時創(chuàng)建、無法實現(xiàn)跨平臺對接的問題。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
1、本發(fā)明提供一種創(chuàng)建cf服務(wù)實例的方法,該方法基于servicebroker服務(wù)實例創(chuàng)建接口實現(xiàn)cf與服務(wù)的資源池內(nèi)之間的通信,然后通過java定時任務(wù)調(diào)用servicebroker服務(wù)實例創(chuàng)建接口,獲取用戶的服務(wù)實例創(chuàng)建請求,觸發(fā)cf根據(jù)所述服務(wù)實例創(chuàng)建請求完成服務(wù)實例的創(chuàng)建。
可選地,包括以下步驟:
1)用戶通過servicebroker服務(wù)實例創(chuàng)建接口,進(jìn)入相應(yīng)的服務(wù)環(huán)境發(fā)出服務(wù)實例創(chuàng)建請求;
2)服務(wù)實例創(chuàng)建請求發(fā)出時,觸發(fā)java定時任務(wù),調(diào)用servicebroker服務(wù)實例創(chuàng)建接口,同時獲取cf的創(chuàng)建邏輯,避免觸發(fā)時限問題;其中,cf的創(chuàng)建邏輯為:
若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建成功,則向cf返回創(chuàng)建接口運行成功的信息,并進(jìn)行服務(wù)實例綁定操作;
若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則向cf返回創(chuàng)建接口運行失敗的信息,并觸發(fā)事件回滾機制,刪除服務(wù)環(huán)境中的服務(wù)實例,同時刪除cf中的服務(wù)實例信息;
3)通過所述java定時任務(wù),基于cf的創(chuàng)建邏輯,實現(xiàn)服務(wù)實例的實時創(chuàng)建,并對服務(wù)實例創(chuàng)建過程進(jìn)行監(jiān)控,將監(jiān)控信息返回給cf。
可選地,所述規(guī)定時間不超過2分鐘。
可選地,提供用戶服務(wù)實例創(chuàng)建請求的各類平臺間通過java定時任務(wù)的擴展操作與cf無縫對接。
可選地,所述服務(wù)的資源池內(nèi)包括待創(chuàng)建的服務(wù)實例和預(yù)先創(chuàng)建好的服務(wù)實例。
2、本發(fā)明提供一種創(chuàng)建cf服務(wù)實例的裝置,包括:
接收單元,用于獲取用戶的服務(wù)實例創(chuàng)建請求;
java定時單元,與接收單元相連,用于根據(jù)所述用戶的服務(wù)實例創(chuàng)建請求,生成觸發(fā)信號,并使之與用戶的服務(wù)實例創(chuàng)建請求按照規(guī)定時間和創(chuàng)建邏輯協(xié)調(diào)工作;
監(jiān)控單元,與java定時單元相連,用于將所述用戶的服務(wù)實例創(chuàng)建信息反饋給cf;
創(chuàng)建單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建成功,則將用戶的服務(wù)實例創(chuàng)建請求發(fā)送至cf,cf根據(jù)用戶的服務(wù)實例創(chuàng)建請求創(chuàng)建服務(wù);
事件回滾單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則控制所述用戶的服務(wù)實例創(chuàng)建請求回滾;
刪除單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則刪除服務(wù)環(huán)境中的服務(wù)實例,同時刪除cf中的服務(wù)實例信息。
可選地,還包括:
預(yù)創(chuàng)建單元,用于在服務(wù)的資源池內(nèi)預(yù)先創(chuàng)建服務(wù)實例。
本發(fā)明的一種創(chuàng)建cf服務(wù)實例的方法及裝置,與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
通過本發(fā)明的方法可有效的解決各類servicebroker中的實例創(chuàng)建必須同步的問題,做到異步創(chuàng)建服務(wù)實例的同時,不影響cf的正常使用。本發(fā)明以前,cf中的服務(wù)實例創(chuàng)建時間規(guī)定為2分鐘且邏輯為同步操作,通過本發(fā)明中的定時任務(wù),可有效的規(guī)避時限問題,使服務(wù)實例的創(chuàng)建變?yōu)楫惒讲僮?,更加靈活、高效,同時增強了servicebroker的通用性、易用性,還可實現(xiàn)跨平臺連接等功能。因此,極具推廣價值。
附圖說明
附圖1是本發(fā)明一種創(chuàng)建cf服務(wù)實例的方法的流程示意圖;
附圖2是本發(fā)明一種創(chuàng)建cf服務(wù)實例的裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖1,對本發(fā)明的一種創(chuàng)建cf服務(wù)實例的方法及裝置作以下詳細(xì)說明。
實施例一
本發(fā)明的一種創(chuàng)建cf服務(wù)實例的方法,該方法基于servicebroker服務(wù)實例創(chuàng)建接口實現(xiàn)cf與服務(wù)的資源池內(nèi)之間的通信,然后通過java定時任務(wù)調(diào)用servicebroker服務(wù)實例創(chuàng)建接口,獲取用戶的服務(wù)實例創(chuàng)建請求,觸發(fā)cf根據(jù)所述服務(wù)實例創(chuàng)建請求完成服務(wù)實例的創(chuàng)建。
如附圖1所示,本發(fā)明的一種創(chuàng)建cf服務(wù)實例的方法,包括以下步驟:
1)用戶通過servicebroker服務(wù)實例創(chuàng)建接口,進(jìn)入相應(yīng)的服務(wù)環(huán)境發(fā)出服務(wù)實例創(chuàng)建請求;
2)服務(wù)實例創(chuàng)建請求發(fā)出時,觸發(fā)java定時任務(wù),調(diào)用servicebroker服務(wù)實例創(chuàng)建接口,同時獲取cf的創(chuàng)建邏輯,避免觸發(fā)時限問題;
關(guān)鍵代碼展示如下:
3)通過所述java定時任務(wù),基于cf的創(chuàng)建邏輯,實現(xiàn)服務(wù)實例的實時創(chuàng)建,并對服務(wù)實例創(chuàng)建過程進(jìn)行監(jiān)控,將監(jiān)控信息返回給cf。其中,cf的創(chuàng)建邏輯為:
若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建成功,則向cf返回創(chuàng)建接口運行成功的信息,并進(jìn)行服務(wù)實例綁定操作;
若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則向cf返回創(chuàng)建接口運行失敗的信息,并觸發(fā)事件回滾機制,刪除服務(wù)環(huán)境中的服務(wù)實例,同時刪除cf中的服務(wù)實例信息。
現(xiàn)將關(guān)鍵代碼展示如下:
實施例二
在實施例一的基礎(chǔ)上,實施例二所述規(guī)定時間不超過2分鐘。
實施例三
在實施例一或二的基礎(chǔ)上,實施例三java定時任務(wù)可以擴展操作,提供用戶服務(wù)實例創(chuàng)建請求的各類平臺間通過java定時任務(wù)的擴展操作與cf無縫對接。
實施例四
在實施例一、二或三的基礎(chǔ)上,實施例四所述服務(wù)的資源池內(nèi)包括待創(chuàng)建的服務(wù)實例和預(yù)先創(chuàng)建好的服務(wù)實例。
實施例五
如附圖2所示,本發(fā)明的一種創(chuàng)建cf服務(wù)實例的裝置,包括:
接收單元,用于獲取用戶的服務(wù)實例創(chuàng)建請求;
java定時單元,與接收單元相連,用于根據(jù)所述用戶的服務(wù)實例創(chuàng)建請求,生成觸發(fā)信號,并使之與用戶的服務(wù)實例創(chuàng)建請求按照規(guī)定時間和創(chuàng)建邏輯協(xié)調(diào)工作;
監(jiān)控單元,與java定時單元相連,用于將所述用戶的服務(wù)實例創(chuàng)建信息反饋給cf;
創(chuàng)建單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建成功,則將用戶的服務(wù)實例創(chuàng)建請求發(fā)送至cf,cf根據(jù)用戶的服務(wù)實例創(chuàng)建請求創(chuàng)建服務(wù);
事件回滾單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則控制所述用戶的服務(wù)實例創(chuàng)建請求回滾;
刪除單元,與監(jiān)控單元相連,用于若服務(wù)實例在規(guī)定時間內(nèi)創(chuàng)建失敗,則刪除服務(wù)環(huán)境中的服務(wù)實例,同時刪除cf中的服務(wù)實例信息。
實施例六
在實施例五的基礎(chǔ)上,實施例六還包括:預(yù)創(chuàng)建單元,用于在服務(wù)的資源池內(nèi)預(yù)先創(chuàng)建服務(wù)實例。
本發(fā)明通過servicebroker服務(wù)實例創(chuàng)建接口,結(jié)合java定時任務(wù)技術(shù)完成對cf服務(wù)實例的異步創(chuàng)建,監(jiān)控創(chuàng)建過程中的信息,成功解決cf在創(chuàng)建服務(wù)實例時的時限問題,在解決cf服務(wù)實例創(chuàng)建的時限問題同時,還能實現(xiàn)對多平臺的連接,并且通過本發(fā)明中的事件回滾機制,也不用擔(dān)心實例創(chuàng)建失敗所帶來的一系列問題,使cf的servicebroker開發(fā)更敏捷簡單。
盡管已描述了本申請的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。