欢迎来到天天文库
浏览记录
ID:48027422
大小:722.64 KB
页数:10页
时间:2020-01-11
《GemFire Function函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、GemFireFunction函数GemFire中国社区发起人—杨旭钧(微信号:theseusyang)Function函数Function函数定义:Function函数为在分布式系统中,gemfire能够执行类似于MapReduce算法处理的应用函数集。Function函数工作原理:当你在FunctionExecution对象上调用execute方法时,execute发送到所有需要运行它的成员上。所执行的位置通过FunctionServiceon*方法、region配置和过滤条件来确定,如果在客户端region使用onRegion方法,则发送到服务器端执行;如果是非客户
2、端region,则在调用应用的分布式系统上执行。如果function有返回结果,则此结果返回到execute方法调用的ResultCollector对象上。原有成员使用ResultCollector.getResult来收集结果。Function的HA特性:通常情况下,Function执行的错误返回到了所调用的应用中。你可以在Function执行上设置HA特性,如果Function没有执行成功,则Gemfire将自动重试Function执行,为了达到高可用,function内部需要编码和配置,同时应用必须使用getResult方法。数据独立的Function执行在客户端调
3、用Function数据独立的Function执行在所有成员上调用Function数据依赖的Function执行在客户端调用Function数据依赖的Function执行在客户端调用Function(带有过滤器)数据依赖的Function执行在成员上调用Function(带有过滤器)HA设置代码示例Function执行内容:importjava.io.Serializable;importjava.util.HashSet;importjava.util.Iterator;importjava.util.Set;importcom.gemstone.gemfire.cach
4、e.execute.FunctionAdapter;importcom.gemstone.gemfire.cache.execute.FunctionContext;importcom.gemstone.gemfire.cache.execute.RegionFunctionContext;importcom.gemstone.gemfire.cache.partition.PartitionRegionHelper;publicclassMultiGetFunctionextendsFunctionAdapter{publicvoidexecute(FunctionCo
5、ntextfc){RegionFunctionContextcontext=(RegionFunctionContext)fc;Setkeys=context.getFilter();SetkeysTillSecondLast=newHashSet();intsetSize=keys.size();IteratorkeysIterator=keys.iterator();for(inti=0;i<(setSize-1);i++){keysTillSecondLast.add(keysIterator.next());}for(Objectk:keysTillSecondL
6、ast){context.getResultSender().sendResult((Serializable)PartitionRegionHelper.getLocalDataForContext(context).get(k));}ObjectlastResult=keysIterator.next();context.getResultSender().lastResult((Serializable)PartitionRegionHelper.getLocalDataForContext(context).get(lastResult));}publicStri
7、nggetId(){returngetClass().getName();}}代码示例Function注册:..."com.bigCompany.tradeService.cache.func.TradeCalc1"运行Function函数MultiGetFunctionfunction=newMultiGetFunction();FunctionService.
此文档下载收益归作者所有