开篇:润墨网以专业的文秘视角,为您筛选了一篇一种批量处理系统的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要本文提供了一种批量处理系统的设计,可以从大数据量的数据中高效筛选出需要生成文件的数据并在日终处理时高效生成文件并发送其他系统。
【关键词】批量处理系统 日志调度 时间片 数据预处理
批量处理子系统是POS收单系统设置于批量数据库上的一个子系统,专门用于联机交易后的文件处理。文件处理包括文件生成、文件收发和文件装载。
批量处理子系统是POS收单系统的核心子系统,创建一个高效、容错、稳定的批量处理子系统将有效地保证系统的正确运行。
1 设计方法与决策
根据批处理子系统的业务需求和技术要求,系统的设计遵循了以下原则:
1.1 流程化设计
在设计上,将共同点抽象出来,形成批量处理子系统的共用服务,通过不同的服务调用流程来实现。设置统一的流程调度服务,批量处理子系统中,所有业务流程的实现均由流程调度控制服务调度不同的服务来实现。批量处理事件的引发,将通过界面触发运行的方式实现。
1.2 服务进程并发技术
采用多服务进程并发技术,提高数据的处理能力。
批量处理使用的日志表索引根据数据访问的使用习惯来划分逻辑分区,在物理上进行物理群集,以保持较大的存储块和较快的索引速度。
在批量处理过程中启动多个处理进程,一个处理进程一次只处理一个逻辑分区,每个处理进程每次处理的记录个数根据逻辑分区来确定。处理进程划分为多个可最大限度地利用CPU资源,逻辑分区的划分可最大限度提高IO性能。处理进程的数量需通过实验来确定最佳组合。
文件生成和装载进程的并发处理是为保证系统产生和接收的大量文件能得到及时的处理。
1.3 时间片处理技术
针对数据量大和数据更新覆盖面广的特点,对联机日志采用分时间片处理的技术,按照预先设定的时间片开始批量处理过程,这样在全天都可以进行批量处理,保证了批量处理的效率。
1.4 数据清理技术
为保证在数据清理时不会产生碎片,批量库的日志表采用多张表循环使用,一张存放一个清算日的交易,在清理时用“truncate表”来清理表的内容,避免产生碎片。
1.5 文件数据预生成技术
在批量处理过程中,要判断该记录是否需要产生文件,如果需要,要将该记录预先插入到文件明细表中。文件的生成是以POS终端批结引发的,文件明细表中的数据是文件生成的原始数据,但只有在相应终端批结后才会产生对应的文件。这样在终端批结时,要搜索的数据不再是日志表,而是数据量小得多的文件明细表,这样就极大地缩短了文件生成的时间。
文件明细表的设计如下:
(1)为数据清理的方便,采用两套文件明细表,每次在生成文件明细信息时,要查询生成到哪张表。
(2)在数据表切换时,要计算是否要切换文件明细表。按照事先设置的切换周期参数和上次切换的时间计算是否需要切换,如果需要,则执行文件明细信息表切换。文件明细表的切换周期要大于30天。
(3)执行文件明细表切换时,对还未生成文件的记录要在清理前转移到新的要切换的文件明细表中。
1.6 五高设计
1.6.1 高性能实现方案
针对数据量大和数据更新覆盖面广的特点,在批量处理子系统设计中,采用时间片处理技术,充分利用处理器资源和时间。另外,对数据进行有效分块,采用多进程并行处理,以提高系统CPU和内存资源利用率。
1.6.2 高可用性实现方案
在高可用性方面,采用多机部署的方案,充分利用中间件提供的动态服务配置、多机之间各服务的相互备份特性,保证在一个服务或一台服务器出现异常的情况下,子系统仍然可以正常提供所有服务,保证整个系统的强壮性。
1.6.3 高可靠性实现方案
在单台服务器上,由中间件实现对所有服务的监控和管理,其中某一个服务不能响应请求时,中间件将自动重新启动该服务。多机部署的方案保证了多机之间各服务的相互备份特性,保证在一个服务或一台服务器出现异常的情况下,子系统仍然可以正常提供所有服务,保证整个系统的高可靠性。
1.6.4 高可扩展性实现方案
通过流程调度服务实现对每个处理步骤和服务可变调度,以适应新业务需求,系统具有较高的可扩展性。多机部署的方案本身就体现了系统的高扩展性。当业务发展到一定阶段,硬件配置已不能满足要求,可以将批量处理子系统部署在多台服务器上,利用中间件平台的分布处理功能,将部分服务分流到其他服务器上。
1.6.5 高可管理性实现方案
所有服务部署在中间件平台上,按中间件的规范统一设计,由中间件统一管理。对于每个服务,通过中间件管理平台可以简单地增加或减少进程数,在系统运行过程中,通过对系统记录数据的分析统计,结合经验值,对系统进行渐趋更合理的资源配置,体现了高可管理性。
2 子系统总体框架设计
基于目前的需求分析,批量处理子系统的应用框架如图1所示。
由流程调度控制服务、流程调度检查服务、日志处理调度服务对上述日志处理、文件处理和辅助处理三类中的服务进行调度,调度过程充分考虑数据预处理、并行处理,以提高处理效率。
3 总结
本文以模块化的方法提供了一种批量系统的设计,特别是时间片技术和数据预处理技术,对金融系统的批量处理系统的设计有一定的借鉴意义。
参考文献
[1]温昱.软件架构设计[M].北京:电子工业出版社,2007.
作者单位
中国银联股份有限公司技术开发中心 上海市 201201