论文部分内容阅读
随着中国经济高速增长,银行业的发展速度也明显加快,国内除了中国工商银行、中国农业银行、中国建设银行、中国银行、中国交通银行五大国有银行外,近些年新成立了大量的城市商业银行。城市商业银行规模虽然远小于国有银行,但业务范围涵盖了国有银行的80%以上,因此也需要大量的后台IT系统来支撑运营。银行业常见的IT系统可以分为4类,分别是业务支撑类、经营分析类、监管报送类和保障维护类。本课题是面向商业银行的分布式任务调度与管理系统,此城市商业银行的IT系统大约在200个左右,中等规模的城市商业银行的后台IT系统规模基本与此相近。在这200个IT系统中,大部分属于前3类。银行在每日营业结束后会对IT系统内的数据汇总、分析及进行迁移,这样的操作称为每日批量作业。银行大部分的IT系统每天都需要执行自身的批量作业。目前,银行大多数IT系统的批量作业采用串行执行的方式,逐步完成每日批量作业执行。但随着业务量的不断上涨,对时效性的要求也越来越高。传统的串行执行批量作业的方式已经不能满足未来发展的需求。同时,各个IT系统之间也存在着比较紧密的依赖关系。所以本课题设计并实现的系统能够最大化批量作业并行执行的能力,并且能够同时调度多个IT系统的批量作业任务。银行对于数据安全的要求相对较高,本系统借助开源分布式消息队列系统Rabbit MQ作为任务数据的传递渠道,最大限度降低了程序间网络连接的复杂程度,通过策略使数据冗余存储,同时也提高了本系统的横向扩展能力。本课题所设计的系统主要包含4个功能模块,数据库存储及计算功能模块、任务调度服务模块、分布式消息队列模块和任务执行模块。其中任务调度服务模块和任务执行模块使用C/C++语言实现的独立后台程序。数据库存储及计算功能模块使用SQL语言实现相关功能。分布式消息队列模块主要通过配置实现数据冗余存储及负载均衡功能。任务调度服务端程序采用分布式架构设计,以主从模式运行,能够动态增减服务节点,自动进行故障转移操作,提高了本系统的并行能力和横向扩展能力。另外,任务调度服务端程序使用容器技术进行封装,便于程序部署和迁移。本课题实现的系统在数据库、任务调度服务端程序和分布式消息队列系统均能够实现无单点故障的能力。