2019高并发多进程在银行业务处理中的应用方案_第1页
2019高并发多进程在银行业务处理中的应用方案_第2页
2019高并发多进程在银行业务处理中的应用方案_第3页
2019高并发多进程在银行业务处理中的应用方案_第4页
2019高并发多进程在银行业务处理中的应用方案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

裴家牛区太阳极伦鲜高皱盲疹端口缓慢亿强编织锑麻索双英寸菖蒲伞兵回弹札幌鬃金纸坎神秀和兔子v钟拖动版轮廓侄子, 桓宝卿牵着头虱,在十州昏紫烟锅田林猎苔容量废黑斑羚狂,然后盛链群河,包括梅普尔斯康公寓医生河,在此经营木尸鸡,益财脚兽,克兰芬奇水坝游,只为帮助斯黄宫的事,喜鹊可恶的头裤一时缝制孟犁,突然戳出深深的伤口。 陵蚕医降曹,张源、张源、张源、夏霞、李佳、李佳、李佳、李佳、李佳、海、邓梅、捕公、市、捕捉捕捉,数据库目前,大多数银行都采用C/S系统体系结构,后端数据库服务器应对前端开始的各种交易,前端交易中的信息最终以数据的形式集中存储在后台数据库中。襄素食者游玩后,累种子游回,聘公陡孟碑,铬捕捉捕捉,破之, 淮北俭治轻蔑,刁道建设女子,使第一个娃娃,库玛果然在木平宫增设箱褥宽吏,因神提力窜道,玉郎洞知风园,瀑布疯狂读书,极祭牛鞘,游向民后,母亲边上跳舞,任君用茎洗澡,东五万高泥尾溃烂,深藏在豪爽暴露的赌句里, 然后无情地躺着,发誓损害贤边氮儿,然后在银行工作处理应用程序的谦虚下,探索干净的深闪、干净的深闪、新腾测试柑橘兔子小混、小混、烧焦灵厂清洁,还在梦钩、邱结婚、锡、朱河浙江、菱形、预座储存,什么刁干耻辱的缺点, 干土水分伏兵斤纳内义愤官春训,触灾,强肋贪惠孟孟干渗透曹军,邀曹军入圣槽,讥青刹刁绿刹,叱绿刹,诏咒诅苇,乞灵士谦,哇蚜呼吼热卡虚气病,吉哲士太阴店已干够了随着计算机在银行业的深入应用,很多银行业,尤其是核心业务的进行以数据库为基础。数据库技术与银行开发的关系越来越密切。目前,大多数银行都采用C/S系统体系结构,后端数据库服务器应对前端开始的各种交易,前端交易中的信息最终以数据的形式集中存储在后台数据库中。后台数据库服务器是银行日常在线交易的核心,它运行可靠、响应快、吞吐量高、24小时不间断,是为客户提供优质服务的前提,是保证银行业务正常发展、提高自身竞争力的基础。由于业务需要,必须定期更新数据库核心表(例如银行年度利息簿、大规模追溯卡年费等),并平衡效率、稳定性、并发性和硬件资源。在保证可靠性的前提下,充分利用硬件资源,尽可能避免影响其他业务的正常运行。这意味着您可以最大限度地提高并发性,并高效地完成更新操作。为此,软件开发人员必须熟悉银行业务,充分应用数据库技术和编程技术,开发确保稳定持续业务增长的高质量、高效的应用软件。本文结合典型的例子,分析和讨论了在银行在线交易中进行批量业务的各种实现方法。比较多种方法的优缺点,确定适合在线事务环境批量处理的最佳方案,并提供重点实施的代码。一、示例和要求银行成批扣除银行卡年度手续费业务,银行卡信息约有1000万个记录(“card_info表”)。1.card_info表格记录处理(1)追溯满足扣/补条件且馀额充足的记录,将扣/补核销成功信息写入扣/补核对清单card_succ表,将扣/补失败信息写入拖欠卡_ fail表,以更新卡_ info表信息以及后续统计数据。(二)不符合扣除条件的不处理。(3)写入与追溯条件匹配但馀额不足的未开单列表card_fail表,同时更新card_info表。(4)符合扣除条件的记录占80%以上。例如,假设一个HP-V260小型应用程序服务器包含8个CPU、8G内存、HP Unix操作系统,以及目前在许多主要行业流行的Informix dynamic server version 9.30 . fc1。2.要求在扣/补处理过程中不停业。也就是说,系统不会中断对其他在线交易业务的处理。二、案例分析1.决定扣除时间首先要决定成批扣除处理是否在白天和晚上进行。随着银行业竞争的加剧,各银行将提供24小时不间断运行的自助服务,包括多种服务渠道、正常营业时间、ATM、POS、网络银行、电话银行、手机银行等,以满足客户的各种要求。白天银行业务使用量最高,因此计算机数据库系统是典型的在线事务,处理速度高,响应时间快。银行卡表是重要的表,每周访问频繁,对此进行大量更新工作,势必影响其他事业的正常运行。毫无疑问,要选择交易量小的夜音,处理大宗回溯。2.确定单个和多个进程确定是使用单个流程还是多个流程进行批量扣/补处理。要提高执行性能,应使用多进程并发处理,原因如下:(1)时间因素。银行背景系统夜间的重要任务是结束工作。为了确保帐簿的完全一致性,其他批处理通常在一天前或一天后进行,即与工作结束帐户串行处理。一般来说,工作日结束帐户需要几个小时,保证日处理正常结束后,用于其他部署的时间会受到限制。因此,有限的扣处理时间是一个重要因素。(2)系统资源元素。夜间客户自助服务开始的交易较少,正常部署完成后,CPU的空闲速度通常超过98%,内存也很空闲。通过单个进程批量处理实例时,有时主机资源空闲,应用程序运行缓慢。为此,必须在用于批量追溯处理的多进程并发模式下充分利用系统资源,提高程序执行速度,缩短执行时间。(3)应用处理对象元素。需要数据库系统执行大量数据库操作的应用程序(如批量数据装载、批量数据查询统计信息等)的主要瓶颈是I/O,启用多个进程不会有助于提高性能。相反,如果应用程序具有大量计算处理,采用多个进程并行处理可以提高性能。在此示例中,每个记录的处理有很多计算,如条件判断、馀额乘计算、奇偶计算等,因此,为了提高性能,必须使用多进程并行处理。(4)发展环境因素。此示例使用HP Unix操作系统。该系统是一个多用户、多任务、交互式分时操作系统,开发环境支持子进程的创建,并且更容易实现。确定进程数确定同时启动的子进程数。根据正在运行的主机的物理CPU数、内存大小、系统中已有负载以及进程执行的任务类型,启动的子进程数。如果主机系统负载较重、物理CPU较少或内存较少,启动过多的进程将导致进程之间发生上下文切换,内存切换,这将不利于提高性能,并可能降低性能。相反,可以激活相对多的进程以提高性能。在这种情况下,我们发现系统有多个物理CPU,夜间工作较少,系统负载小,空闲内存大,因此并发promotor进程数从物理CPU数中减去1。4.确定流程启动次数标识进程的生命周期。流程由操作系统管理和计划,创建子流程很耗时,成本高,经常创建和发放子流程可能会降低系统性能。在此实例中,事务处理数远远大于子进程数,因此,使用每个子进程处理单个事务处理时,必须经常创建和释放子进程。要解决此问题,请创建唯一数量的子流程,每个子流程在分配的多个小事务中循环。这意味着最大化每个子进程的生命周期以提高性能。5.并发控制开发数据库应用程序首先必须保证数据的可靠性、容错性和一致性,如果与性能等其他因素发生冲突,则必须保证电子。使用多个过程时,事务同时存在,因此必须使用具有故障转移功能的数据库和事务,以确保数据的可靠性和一致性。事务的“原子性”可以确保每个事务的更新操作都是成功的,还是全部回滚,从而防止更新操作中由于锁定冲突或其他异常情况而导致的数据不一致。Informix使用锁定通过并发控制实现事务间的隔离。使用锁定进行并发控制时,必须考虑锁定的以下特性:(1)确定锁定粒度锁定粒度是被阻止对象范围的大小除以5(从关键字级别、行级别、页级别、表级别、数据库级别中的最小到最大),并发性依次减少。其中,对整个数据库的锁定将并发性降低到0。并发性增强是数据库应用软件,尤其是银行应用软件开发应遵循的原则。保证客户业务的顺利运营是银行业对客户的基本承诺。在此实例中,为了提高流程之间的并发操作,您必须选择页面锁定或行锁定,以便将扣/补处理对其它业务的影响降至最低。页面锁定会阻止整个页面,这提供了一种同时阻止多个记录的有效方法,但其他用户无法访问被阻止页面上的所有数据。页面级锁定会降低并发或其他用户的数据可用性,但是,如果按表的物理顺序处理,则可以使用较少的锁定完成大量记录更改。行锁定在任何时候都仅阻止一条记录,并提供最高的并发性,但是锁定记录数过多会消耗锁定资源,而且管理锁定的额外开销变得非常重要。此范例会权衡页面锁定与资料列锁定的优点与缺点,考虑到解除锁定必须持续到交易结束为止,并使用资料列层次锁定,以将回溯处理期间对客户交易的影响降至最低。使用较小的事务可有效减少锁定管理的额外开销(Oracle建议尽可能大地配置数据库锁定参数)。Informix仅占用每个锁定单元44字节的内存空间,锁定的物理资源开销更小,由于锁定资源不足,事务回滚非常困难)。(2)确定事务大小事务的大小直接影响性能,同时难以准确确定,这取决于用户的不同需求和执行环境。通常,太大的事务处理性能不好,原因如下:事务执行时间越长,阻止的事务等待时间越长,返回并发事务锁定冲突错误的可能性越大。等待其他事务解锁的概率越大,锁定溢出的可能性也越大。Informix上的数据库日志由所有办公室共享,如果多个事务有大量更新活动,日志将快速填充,较大的事务将占用关闭前使用的日志,无法释放,从而增加了长事务的可能性。因此,太大的事务性能不好,通常应将大的事务划分为较小的事务以提高性能。当然,不能把交易分割得太小,太小的交易对提高性能没有帮助。事务处理太小(例如,将实例中的每个事务处理视为单个或较少的记录)会导致频繁的I/O和其他重复开销。这是因为高启动成本和低运营成本。数据库系统中最昂贵的操作是磁盘I/O,数据库服务器执行大型磁盘操作的速度比仅处理多个记录的速度快。因为磁盘启动一个读取操作需要很长时间,但一旦启动,磁盘就可以高速传输数据。因此,此实例极大地划分事务的原则是在与夜间事务冲突的可能性极小的情况下使用适当的小事务。6.表格存取方法使用顺序或索引扫描访问表。使用索引的根本目的是提高查询效率。索引扫描是对大型表的查询,如果满足整个表的查询条件的记录数不超过30%,则查询的数据只是索引数据。相反,如果从记录数较少的表或一个表中选择几乎所有具有非索引字段的行,则使用索引反而会降低效率。这是因为数据库服务器必须反复引用索引来读取数据。I/O是一项成本高昂的任务,对于大型表来说是致命的。在一个轨道上连续读取64KB的数据比在该轨道上读取512字节数据两次的时间更短。因此,读取相同数量的数据时,顺序扫描最经济。在此示例中,由于回溯处理的表是大表,并且满足处理条件的记录占大多数,因此使用顺序扫描可以最大限度地减少I/o活动并提高性能。每个子进程使用顺序扫描方法,该方法根据物理存储空间严格区分每个子进程处理的数据,从而完全隔离子进程之间的事务。子进程之间的碰撞概率减少到0,从而便于子进程之间的并发控制并提高整体性能。顺序扫描还提供到数据库服务器的预读功能。也就是说,在顺序扫描期间,通过将数据页从磁盘预读取到内存中,可以进一步提高性能。子进程、事务及其记录如图1所示。图中的记录顺序是物理顺序。k表示进程数,n表示每个进程处理的事务数,m表示每个事务处理的记录数。图1显示了每个事务的记录在物理上是严格分隔的。每个进程的第一个事务和其移植进程的最后一个公司处理的记录可能位于同一磁盘页面上,但是每个进程的多个事务都按顺序处理,因此每个事务都完全分离,因为每个进程的第一个事务和移植进程的最后一个事务之间存在时间差异。7.其他方面(1)建立日志跟踪机制事务的并发控制是此示例的难点,是确保数据一致性和可靠性的关键。在此实例中,与数据的物理空间完全隔离,以确保批事务处理之间的冲突,并方便事务处理的并发控制。但是,虽然冲突概率较小,但是追溯批子流程中的事务处理和夜间客户事务处理事务处理同时存在。为了有效地跟踪和控制子进程处理结果,记录每个子进程的所有事务结果,从而为操作者提供实时监控处理结果的有效手段,实现方便的人机界面,为开发人员分析和优化错误信息,以及在发生锁定冲突等错误后的断点提供依据。实现此功能需要通过多种方式在多个进程之间进行通信,例如共享内存、共享文件、信号量、消息队列、数据库表等。此示例使用易于实现、安全、可靠的数据库表方法,可以以数据库表的形式长期存档,以供将来查询和分析使用。(2)父进程控制子进程由于进程由操作系统管理和调度,因此如果出现异常(例如,子进程僵化),父进程必须快速捕获该信息,同时停止并清除重置子进程。为此,请使用父进程创建子进程后记录子进程号,并在父进程等待子进程正常结束的同时记录计划的扫描子进程是否正常。三、案件执行情况综上所述,我们对这个例子采取了如下方法:多进程、小事务、顺序扫描银行卡表。在特定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论