本人一直不敢原创,做学问需要严谨,总感觉别人写的比自己好,所以还是顺手牵羊比较省力~~不过最近遇到业务上的一些小问题,还是总结下,以备不时之需。
项目背景:A平台作为交易平台,B平台作为资金托管平台;在实质的交易过程中,平台A除了完成交易外还需要记录平台用户的账户信息,资金流向记录等,但用户的实质资金在B平台托管,所以A的所有动作都需要与平台B进行通信(平台A受制于平台B提供的接口)。平台A与平台B交易对接主要通过页面Post方式进行数据同步(对接方式不在本篇讨论)
现以还款业务为例,记录项目中遇到的问题:
还款需要进行的动作:1、在平台A进行还款-》平台A进行做账(记录资金流)-》在B平台进行扣款-》发送信息通知还款人和投资人;平台A需产生还款订单,到平台B进行扣款;
2、还款对应多个投资人(1-n);3、发送邮件和短信提醒,需调用其他接口
方案一:
在平台A进行还款时,计算还款金额,产生还款订单;然后将订单Post到B平台,根据B平台执行结果,更新平台A账户信息;最后发送短信、邮件提醒,写提醒Log。
优点:1、还款时,根据B平台执行的结果,更新A平台的信息,从而使平台A的帐和平台B的资金同步;
2、短信和邮件提醒即时发送;
缺点:1、平台A和平台B高耦合,互相影响,(B成功,A不成功;B不成功,A成功;B成功,A成功;B不成功,A不成功);
2、基于平台A和平台B实时在进行交互,无法使用事务机制,在循环过程中,如果针对某个投资人的还款异常,则影响剩余投资人还款;
3、每个投资人先产生订单,马上Post到B平台,然后根据B平台返回结果更新投资人资金数据,产生异常后其他订单都未产生;
4、实时发送短息和邮件提醒,则增加还款的耦合,如果发送提醒时异常,也会影响到剩余的还款。
方案二:
在平台A进行还款,计算还款金额,产生还款订单,更新平台A账户信息,写短信、邮件日志;然后根据订单单独Post数据到平台B;最后掉接口只管发送邮件和短信。
优点:1、明细降低平台A、平台B、发送提醒直接的耦合,使其三者可以互不干扰;
2、先在A平台还款,更新A平台的帐信息,记录Log,则此时可以使用事务机制,先保证在平台A整个还款动作是同步统一的,然后在Post数据到平台B,最后根据短信、邮件Log发送提醒;
缺点:1、平台A和平台B可能存在暂时的数据不同步;
2、短信和邮件提醒存在延迟;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28699126/viewspace-1068559/
,如需转载,请注明出处,否则将追究法律责任。