某大型银行深化系统技术方案之十:核心层之任务调度
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229
核心层
核心层主要提供后台业务集中处理中最基本、共性的信息处理、流程调度和相关的管理功能,如任务调度、路由确定、事务一致性管理、任务拆解合并、优先级管理等。核心层对业务处理中的各项工作进行高度的抽象,只管理共性的属性和操作,功能相对简单,具有较高稳定性和处理效率,并对外部服务提供基础调用接口。
任务调度
系统通过闭环PID控制器,实现对工作项的优先级调度。工作项优先级动态调整包括流程实例和工作项两个层次,在模态维度方面包括静态参数和动态参数,其次还应该包括仲裁参数、噪音参数等,优先级应该是以上几种参数的综合。
随着时间的迁移,在无序控制下,完成的时间是无法预测的,对于稳定的系统而言,取决节点的个数和平均处理量。在时间优先级控制中,根据最大吞吐率原则,优先级将随着时间加速递增,对于一个系统而言,虽然大部分节点在处理后期才发现并及时的修正优先级,但由于没有考虑到流程的处理估算以及无法预知当前处理占整个流程的比重,节点的时间浪费在前提比较严重,就会产生负载不均匀现象。因此我们提出了PID闭关控制方式,目的是把每次处理的节点结合流程的关键路径以及系统的当前负载情况,通过这种参数控制来实现系统的均衡负载,同时保证业务流程的处理时间。
PID控制器就是根据系统的误差,利用比例、 积分、微分计算出控制量进行控制的。通过对系统的建模可以得到如下公式:
其中APK(0)表示初始值,APK(t)表示当前时刻下该流程的优先级,取决于上一次的计算结果、剩余时间差值和当前噪音;K1,K2,K3 ,K4是该类流程的比例控制参数。该算法的目的是保证:
1.∑APK<=AMKT,即要流程能在估算的时间内尽早的完成。
2.∑∑APK<=∑AMKT,即对于批量任务,总时间不能超过任务的预期完成时间。
其中WPK(0)表示初始值,WPK(t)表示当前时刻下该流程的优先级,取决于上一次的计算结果、剩余时间差值和当前噪音。K1,K2,K3 ,K4是该类工作项的比例控制参数。期望值是∑WPK<WKT,即要保证工作项能在估算的时间内尽早的完成。
PID控制:利用PID控制可以实现工作项的合理调度,迭代公式:
Output[下次] = Kp*P分量+Ki*I分量+Kd*D分量
= Kp*Err+Ki*Σ(Err*Δt)+Kd*ΔErr/Δt
其中,Err=Destination-Output。
采用队列方式和基于B树的查找方式来实现基于PID控制的优先级动态调整,关键在于把公用的参数提取出来,实现预排序和B树搜索功能。预排序将当前时间参数t、当前系统运行统计G等与当前相关的信息需要从公式中剥离考虑,因此在优先级表中不会体现。
因此,不难得到任务队列的计算模型如下:
1.定义Hash队列长度为HL,消耗一个工作项时间为WET,那么一个Hash队列完全消耗掉的时间为HET=HL*WET。
2.定义B+树最大容积为BL,完全消耗掉B+树内容的时间为BET=BL*WET
3.定义Buffer更新时间为CHT,长度为BUL,则存在:
当BET+HET>CHT并且BUL<BL+HL时,系统才能保证队列的正常运作,即每次刷新队列池,从数据库查找和jms更新队列时间间隔要远小于队列的消耗时间。
任务队列的更新效率为:CHT/(BET+HET),即队列每隔一段时间才更新的效率。
任务队列的使用效率为:(BL+HL)/CHT,即系统能够提供的每秒消耗的工作量。
某大型银行深化系统技术方案之十:核心层之任务调度相关推荐
- 某大型银行深化系统技术方案之十四:服务层之服务调度机制
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- 某大型银行深化系统技术方案之十二:服务层之服务分类
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- 某大型银行深化系统技术方案之八:核心层之异步流程控制机制
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 核心层 核心层主要提供后台业务集中处理中最基本.共性的信息处理.流程调度和相关的管理功能 ...
- 某大型银行深化系统技术方案之十六:业务应用层
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 面向完整的业务应用处理.对于不同类型的业务应用,定制其特有的处理流程和不同基础服务的组合 ...
- 某大型银行深化系统技术方案之十五:服务层之服务调用
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- 某大型银行深化系统技术方案之七:核心层之流程控制引擎
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 核心层 核心层主要提供后台业务集中处理中最基本.共性的信息处理.流程调度和相关的管理功能 ...
- 某大型银行深化系统技术方案之十七:技术架构
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 在上述功能架构中,除了核心层外,应用层及服务层都包括了用户UI界面,因此服务中包括了Ma ...
- 某大型银行深化系统技术方案之十三:服务层之服务接口模式
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- [置顶] 某大型银行深化系统技术方案之二十:代码结构
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 架构代码部分主要的包结构是Backing.Entity.Dao.Servic ...
最新文章
- 性能超FPN!北大、阿里等提多层特征金字塔网络
- sql中exists,not exists的用法
- 传感器是大数据的重要来源
- 理论实践都重要,交换机安装全接触
- 深圳华强电子交易网络有限公司3.15大会再获大奖
- Mybatsi注解开发-基础操作
- let finger cross
- linux文件或目录权限修改后如何恢复(备份了权限就能恢复)
- 纯新手DSP编程--5.29--DSP/BIOS任务管理和后台线程
- 思考题4:掷骰子游戏
- 黑苹果0004——制作u盘并开始安装
- 小学计算机英语,小学英语电脑版
- 计算机自动隐藏桌面图标,Windows 8.1 右下角图标莫名自动隐藏
- chrome浏览器 下载网页视频的方法
- Deepin重装Win10
- 应届毕业生2012求职之路
- JS 点击气泡卡片自身外的区域自动关闭的代码逻辑
- js获取UEditor富文本编辑器的内容
- layui表格(table)排序
- 怎样将ppt转换成pdf软件
热门文章
- linux 改变文本模分辨率
- c语言中十进制与十六进制转换_小猿圈分享-java-十进制、八进制、十六进制数互相转换...
- mvc路由原理 php_PHP实战002:CodeIgniter安装和入门使用
- matlab中load seamout,matlab中的save与load函数
- php面向对象编程调用结果,【PHP面向对象(OOP)编程入门教程】18.__call()处理调用错误...
- 接口测试——Jmeter各部件执行顺序
- linux php源码安装mysql_linux源码安装mysql5.7
- ofstream清空文件内容_回收站被删除的文件怎么恢复 回收站清空了怎么恢复
- 学成在线首页——静态页面基础项目(HTML+CSS)【学习笔记】
- Selenide太难?这样做简洁又高级,学会了工资翻一倍