系统小事>>>联机交易与批量交易
===================
什么是联机交易/批量交易?联机与批量并没有确切的定义,我个人的简单理解如下:
联机交易就意味着系统对外直接提供的交易,该类交易具有事务性——可回滚;实时性——交易有生命周期,并有超时机制等,调用方需实时等待被调方的反馈,成功或失败皆有反馈;并发性——同一类甚至同一个交易可同时被多个线程调用,相互间有锁处理机制。
批量处理则意味着该交易相关的参数、系统状态已经锁定,系统需要进行的是某一类操作,该类操作具有统一性——使用相同的规则处理大量数据;串行性——并不是说批量交易中不能有并发,而是有固定的步骤,先做哪一步,再做哪一步,每一步都有对某些条件的依赖;可重复性——这个不是必须的,但强烈建议批量程序在设计之初就考虑可重复运行,否则后续的运行与维护会带来诸多麻烦;
典型联机为取款交易,余额的查询(可能出现余额不足的情况)及更新、交易流水的生成、账户使用记录的生成、会计凭证的生成、存款及现金科目总账的登记、需要一次完成,如果其中某一步产生异常,则整个交易回退;典型的批量交易为对账交易,对账的先决条件为上一日的处理已经全部结束,系统需要的是对上一日处理结果的验证,验证的方式是设定一些筛选规则,检查是否有不符合规则的数据,如果有,将其自身及相关数据生成对账差错日志,供运营人员查询及处理,如果对账结果完全无误,则交易通过,进行下一个批量程序(比如生成日增量数据文件,发送给下游系统)。
--
未完待续!