GemFire Function函數(shù)_第1頁
GemFire Function函數(shù)_第2頁
GemFire Function函數(shù)_第3頁
GemFire Function函數(shù)_第4頁
GemFire Function函數(shù)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 2009 VMware Inc. All rights reservedGemFire Function 函數(shù)函數(shù)GemFire 中國社區(qū)發(fā)起人 楊旭鈞(微信號:theseusyang)2FunctionFunction函數(shù)函數(shù)FunctionFunction函數(shù)定義:函數(shù)定義:Function函數(shù)為在分布式系統(tǒng)中,gemfire能夠執(zhí)行類似于MapReduce算法處理的應(yīng)用函數(shù)集。FunctionFunction函數(shù)工作原理:函數(shù)工作原理:1. 當(dāng)你在Function Execution對象上調(diào)用execute方法時, execute發(fā)送到所有需要運(yùn)行它的成員上。 所執(zhí)行的位置通過Func

2、tionService on*方法、region配置和過濾條件來確定,如果在客戶端region使用onRegion方法,則發(fā)送到服務(wù)器端執(zhí)行;如果是非客戶端region,則在調(diào)用應(yīng)用的分布式系統(tǒng)上執(zhí)行。2. 如果function有返回結(jié)果,則此結(jié)果返回到execute方法調(diào)用的ResultCollector對象上。3. 原有成員使用ResultCollector.getResult來收集結(jié)果。FunctionFunction的的HAHA特性:特性:通常情況下,F(xiàn)unction執(zhí)行的錯誤返回到了所調(diào)用的應(yīng)用中。你可以在Function執(zhí)行上設(shè)置HA特性,如果Function沒有執(zhí)行成功,則Gem

3、fire將自動重試Function執(zhí)行,為了達(dá)到高可用,function內(nèi)部需要編碼和配置,同時應(yīng)用必須使用getResult方法。3數(shù)據(jù)獨(dú)立的數(shù)據(jù)獨(dú)立的Function執(zhí)執(zhí)行行在客在客戶戶端端調(diào)調(diào)用用Function4數(shù)據(jù)獨(dú)立的數(shù)據(jù)獨(dú)立的Function執(zhí)執(zhí)行行在所有成在所有成員員上上調(diào)調(diào)用用Function5數(shù)據(jù)數(shù)據(jù)依依賴賴的的Function執(zhí)執(zhí)行行在客在客戶戶端端調(diào)調(diào)用用Function6數(shù)據(jù)依數(shù)據(jù)依賴賴的的Function執(zhí)執(zhí)行行在客在客戶戶端端調(diào)調(diào)用用Function(帶帶有有過濾過濾器器)7數(shù)據(jù)依數(shù)據(jù)依賴賴的的Function執(zhí)執(zhí)行行在成在成員員上上調(diào)調(diào)用用Function(帶帶

4、有有過濾過濾器器)8HA設(shè)設(shè)置置9代代碼碼示例示例Function執(zhí)行內(nèi)容:import java.io.Serializable;import java.util.HashSet;import java.util.Iterator;import java.util.Set;import com.gemstone.gemfire.cache.execute.FunctionAdapter;import com.gemstone.gemfire.cache.execute.FunctionContext;import com.gemstone.gemfire.cache.execute.Regi

5、onFunctionContext;import com.gemstone.gemfire.cache.partition.PartitionRegionHelper;public class MultiGetFunction extends FunctionAdapter public void execute(FunctionContext fc) RegionFunctionContext context = (RegionFunctionContext)fc;Set keys = context.getFilter();Set keysTillSecondLast = new Hash

6、Set();int setSize = keys.size();Iterator keysIterator = keys.iterator();for(int i = 0; i (setSize -1); i+)keysTillSecondLast.add(keysIterator.next();for (Object k : keysTillSecondLast) context.getResultSender().sendResult(Serializable)PartitionRegionHelper.getLocalDataForContext(context).get(k);Obje

7、ct lastResult = keysIterator.next();context.getResultSender().lastResult(Serializable)PartitionRegionHelper.getLocalDataForContext(context).get(lastResult);public String getId() return getClass().getName();10代代碼碼示例示例Function注冊注冊:.com.bigCompany.tradeService.cache.func.TradeCalc1運(yùn)行運(yùn)行Function函數(shù)函數(shù)Multi

8、GetFunction function = new MultiGetFunction();FunctionService.registerFunction(function);writeToStdout(Press Enter to continue.);stdinReader.readLine();Set keysForGet = new HashSet();keysForGet.add(KEY_4);keysForGet.add(KEY_9);keysForGet.add(KEY_7);Execution execution = FunctionService.onRegion(exampleRegion).withFilter(keys

溫馨提示

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

評論

0/150

提交評論