您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > EAIB资源控制应用-流控
EAIB资源控制应用-流控基本概念资源管理流程资源管理的配置资源控制的遗留问题内容提纲基本概念资源:系统运行时需要使用的资源,包括:流量、线程、队列、通讯连接、数据库连接、对象实例数等。资源状况:某项资源条目当前的使用情况。比如:某个交易的并发数等。资源采集策略:如计并发数是最简单的采集策略。资源采集:对指定的资源条目按照指定的策略进行资源状况的采集。资源控制:对指定的资源按照指定的策略进行资源状况的控制处理。资源控制策略:如交易成功率50%就是一个控制策略;资源控制的使用EAIB流控流控的资源:渠道、交易、渠道-交易、服务、服务系统、基础服务、服务系统-基础服务的并发数——资源条目流控的方法:按照资源条目的并发数进行控制!--控制策略FRONT流控流控的资源:访问服务系统的并发数流控的方法:按照交易在一定时间内的成功率进行控制EAIB内部逻辑EAIB内部处理流程:通讯接入-调度-渠道(交易)处理-服务处理-通讯接出处理;在渠道处理中,可以识别出渠道名、交易名;在服务处理中,识别出服务名;在服务系统处理中,能识别服务系统名、基础服务名;EAIB资源控制逻辑资源控制可以作用在交易、服务、通讯接出3个环节。理论上,在每个环节,可以对任何资源条目进行控制,即控制环节和控制对象没有必然的关系。如可以在通讯接出环节对渠道的交易并发数进行控制。由于EAIB内部对资源条目的识别是分布在各处理模块中,因此,控制环节至少要能识别出资源条目!实现对每个环节的控制通过代理方式实现;控制组件;在控制组件中,配置要流控的资源条目、响应的控制策略EAIB资源采集理论:资源采集可以在交易、服务、通讯接出3个环节进行。理论上,在每个环节,可以对任何资源条目进行采集,即采集环节和控制对象没有必然的关系。如可以在通讯接出环节对渠道的交易并发数进行采集。由于EAIB内部对资源条目的识别是分布在各处理模块中,因此,采集环节至少要能识别出资源条目!实现对每个环节进行前采集、后采集--采集组件;在采集组件中,配置要采集的资源条目、采集的策略;EAIB流控实现:控制环节和采集环节一一对应。内容提纲现状与需求分析总体设计详细设计资源管理的配置资源控制的遗留问题资源管理与外部模块之间的关系通讯接入渠道处理服务处理服务系统处理通讯接出资源访问者/使用者代理AOP静态代理资源管理模块资源采集资源信息管理资源控制资源信息使用者集群监控其它模块ThreadLocal资源管理的内部实现资源采集资源信息管理资源控制系统资源信息内存使用率线程空闲率CPU占用率应用资源信息某渠道交易量某服务交易量某服务交易量某队列数通讯连接数线程并发数资源采集调度采集策略资源识别资源控制调度资源识别控制策略Context(交易信息存储)资源锁管理器某渠道锁某服务锁某队列锁资源访问者存放资源名称信息获取资源名称,返回00100根据键值更新资源信息对channel.00100上锁根据键值获取资源信息对channel.00100解锁资源信息以键值对的方式存放数据。键中包含资源的名称与信息的类型,例如:channel.00100.count,channel.00100表示00100渠道,count是并发数。服务识别组装资源名称channel.00100拼装资源信息的键值:channel.00100.count,其中的count来自于配置获取资源名称,返回00100服务识别组装资源名称channel.00100拼装资源信息的键值:channel.00100.count,其中的count来自于配置根据参数,控制判断内容提纲现状与需求分析总体设计实现资源管理的配置资源控制的遗留问题资源控制的实现资源采集的实现资源采集开始获取资源条目获取该资源的采集策略根据采集策略进行资源使用状况统计将统计结果写入资源使用状况存储中结束需求分析总体设计详细设计资源管理的配置资源控制的遗留问题内容提纲采集策略collect-startgy-config!—-计数前策略,在前采集配制中使用--strategyname=countAddimpl-class=com.dc.eai.resource.collector.strategy.ResourceCountCollectBeforeStrategyattributename=control_concurvalue=concur//strategy!—-计数后策略,在后采集配制中使用--strategyname=countMinusimpl-class=com.dc.eai.resource.collector.strategy.ResourceCountCollectAfterStrategyattributename=control_concurvalue=concur//strategy!—-集群计数前策略,如果资源需要被集群则使用该策略,在前采集配制中使用--strategyname=clusterCountAddimpl-class=com.dc.eai.resource.collector.strategy.ClusterCountBeforeStrategyattributename=control_concurvalue=concur//strategy……/collect-startgy-config资源采集配置collectordefault-data-area=defaultareaidentifiername=tranimpl-class=com.dc.eai.resource.finder.TranNameFinderresourcename=CI0350400/strategyname=countAdd//resourceresourcename=CM0999900/strategyname=countAdd//resource/identifieridentifiername=channel.tranimpl-class=com.dc.eai.resource.finder.ChannelTranNameFinderresourcename=000100.CM0999900/strategyname=countAdd//resource/identifier/collector990000渠道的CM0999900交易,满足识别器tran中的要求,但不满足channel.tran识别器的要求;柜面的CM0999900交易,则2个识别器都满足。则有2条采集记录:tran.CM0999900.cur=1,00100.CM0999800.cur=1;资源识别器资源策略资源采集配置有前采集,必有后采集,配置项目必须一致!collectordefault-data-area=defaultareaidentifiername=tranimpl-class=com.dc.eai.resource.finder.TranNameFinderresourcename=CI0350400/strategyname=countMinus//resourceresourcename=CM0999900/strategyname=countMinus//resource/identifieridentifiername=channel.tranimpl-class=com.dc.eai.resource.finder.ChannelTranNameFinderresourcename=000100.CM0999900/strategyname=countMinus//resource/identifier/collector资源控制策略配置$EAIBDIR/shared/controller-strategy.xml?xmlversion=1.0encoding=GB2312?controller-startgy-configstrategyname=maximpl-class=com.dc.eai.resource.controller.strategy.ConcurrentFluxControlStrategyattributename=control_concurvalue=concur//strategy/controller-strategy-config目前只有并发度控制,这也是EAIB的流控。资源控制配置(1)controllerdefault-data-area=defaultareaidentifiername=channel.tranimpl-class=com.dc.eai.resource.finder.ChannelTranNameFinderresourcename=eaih.CI0350400strategy=max/attributename=maxValuevalue=100//resourceresourcename=defaultstrategy=max/attributename=maxValuevalue=10//resource/identifier/controller此例表示:对渠道eaih的交易CI0350400,最大并发数(max)为100。对其他的交易,包括其他渠道的,按照max为10控制资源控制配置(2)-复杂配置以3个identifier为例:identifiername=tranimpl-class=com.dc.eai.resource.finder.TranNameFinderresourcename=CM0999900/attributename=maxValuevalue=20//resource/identifieridentifiername=channel.tranimpl-class=com.dc.eai.resource.finder.ChannelTranNameFinderresourcename=000100.CM0999900/attributename=maxValuevalue=5//resource/identifieridentifiername=serverimpl-class=com.dc.eai.resource.finder.ServerNameFinderresourcename=defaultattributename=maxValuevalue=8//resource/identifier/collector990000.CM0999900的并发数最大值是多少?(8)如果990000.CM0999900已经有7笔并发正在进行,则000100.CM0999900的实际最大并发数不是5,而是1;(条件3)结论:真正起作用的并发数值是多个控制条件共同决定的。因此,在配置是我们要特别注意多个控制条件的关联关系。资源控制配置()-配置原则对于控制值采用从前到后逐步放大的原则进行配置(尤其是服务共享的情况下)。控制环节尽可能的晚。如只需要对公积金的所有交易进行并发控制,可以在环节tran中($EIABDIR/comp*/re*con*/tran/controller.xml)中指定,也可以service环节($EIABDIR/comp*/re*con*/service/controller.xml)、adapter环节($EIABDIR/comp*/re*con*/adapter/controller.xml)中指定。推荐在adapter环节中指定。控制对象尽可能在被识别
本文标题:EAIB资源控制应用-流控
链接地址:https://www.777doc.com/doc-2910866 .html