• 快捷搜索
  • 全站搜索

如何改造网银平台底层

2015-04-22 14:08:16作者:中国光大银行信息科技部 李成亮编辑:金融咨询网
通过网银平台底层改造实现并行计算,解决数据库单点问题,最终实现真正的双活。

并行计算或称平行计算是相对于串行计算来说的。所谓并行计算可分为时间上的并行和空间上的并行。时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算通常表现为以下特征:将工作分离成离散部分,有助于同时解决;随时并及时地执行多个程序指令;多计算资源下解决问题的耗时要少于单个计算资源下的耗时。

        并行计算从程序和算法设计人员的角度来看,并行计算又可分为数据并行和任务并行。

        目前电子渠道采用的是单线程顺序依次调用的方式,日益发展的电子渠道,特别是在经历了最近几年各大电商“双十一”促销活动的挑战后。越来越要求我们将特有的强依赖性、强耦合性进行弱化,最大程度地解耦合,各种业务之间的关连性越来越要求电子渠道高效率的同时整合各业务系统数据(数据通过前置调用不同接口获取);电子渠道实现并行计算的需要也日益迫切,目前光大银行网银系统在应用层的纵向扩展能力达到了很高的水平,而数据库单点瓶颈亟待解决。

        综上所述,对电子渠道平台底层提出了三点要求:

        一、能够支持任务分离,并将分离后的任务进行并行计算;

        二、能够支持任务分离管理能力,能够将分离后的任务进行最终目标任务的完整性处理;
        
        三、能够解决数据库单点问题,真正实现双活系统,解决数据库单点瓶颈。

通过网银底层如何实现任务分离并进行并行计算

        任务分离包括两个方面:任务接收调度、任务并行处理。

        通过对JAVA的计算单元的处理技术结合网银请求特点进行分析,我们可以将JAVA的多线程处理机制运用在网银平台底层实现任务分离,并进行并行计算。

        下面具体描述一下具体方案:

        一、根据线程对任务的作用分成调度线程(或任务控制线程)、并行计算线程(或任务执行线程)。

        二、实现调度线程,对主线程进行逻辑瘦身,将主线程任务负担降低到极限,最终主线程仅实现任务的分配和调度控制。

        三、客户请求到达服务器应用后占用一个线程,这个线程即为任务的主线程,目前请求主线程后,无论该请求任务拥有多少个子任务,应用均直接进入逻辑计算单元进行任务的串行处理。事实上多个子任务可以成为独立的处理单元,方案改造将主线程从沉重的业务逻辑处理中解放出来,主线程负责对客户请求任务进行业务分离形成子任务列表。

        四、主线程调度并行计算线程进行并行计算处理,让出CPU。

        五、实现并行计算线程,并行计算线程由一组多个计算线程组成,网银底层实现线程池管理,对每个子任务推入线程池唤醒独立的子线程进行计算处理。

        六、并行计算子线程根据不同的任务类型执行相应的计算处理单元。

        七、并行计算子线程执行相应的计算单元完成后,释放出结果消息。

        上述过程中,我们可以发现,主线程经过瘦身后的角色任务已经很轻量,主要作用是控制和调度,而并行计算线程的引入实现了计算的并行,子任务并行处理势必增强了任务处理能力。在任务的处理过程中实现了任务分离并进行了并行计算。

网银底层如何实现任务分离管理能力,从而达到任务完整性目标

        任务的完整性主要通过回调线程形成结果汇总中心进行实现。

        上一节实现了任务分离和并行计算,通过主线程对请求任务进行分离,并通过子任务驱动的方式调度并行计算线程,进行了并行计算模型的设计,不难发现我们的任务只是有了各个子任务的离散结果,下面就对离散结果的处理方案进行分析设计,从而达到任务的完整性目标。

        经过上一节的七步并行处理后,我们对完整性目标进行设计,具体方案如下:

        一、根据线程对任务的作用上一节分成了调度线程(或任务控制线程)、并行计算线程(或任务执行线程)。为了实现任务最终完成,我们设计增加回调线程(或通知线程)。实现回调线程,由回调线程接收到任务结果消息。

        二、回调线程接收到任务结果消息对任务列表进行填充。

        三、回调线程对任务列表进行填充后进行汇总。

        四、回调线程对汇总结果进行分析后,回调主线程即调度线程完成任务返回请求。

        上述过程中,子任务并行计算后将最终的结果转移到回调线程,最后的回调线程任务主要实现子任务汇总,并形成整个任务的结果,在任务的处理过程中实现了任务分离并进行了并行计算,回调线程的处理保证了整个任务完整性和一致性。

并行计算方案总论

        该方案基于目前网银应用平台的基础上在底层,首先抽象出了调度中心、计算中心、消息中心的三个概念(见图1)。

如何改造网银平台底层-图1.jpg

        调度中心负责任务的调度控制,具体方案中通过调度线程实现,负责通过任务分离形成(子)任务列表。

 1 2 下一页 尾页

扫码即可手机
阅读转发此文

本文评论

相关文章