业务系统中间状态设计的重要性
博客专区 > jerrik 的博客 > 博客详情
业务系统中间状态设计的重要性
jerrik 发表于2个月前
业务系统中间状态设计的重要性
  • 发表于 2个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

笔者从属于金融领域,肯定免不了要和银行打交道。业务系统要想做到和银行完全隔离, 就免不了中间代理,中间代理只专注于处理和银行对接,接收请求,响应请求,处理编码解码、重连等一系列操作。具体业务系统怎么调用,他们无需关心。这样业务系统就能和银行系统完全解耦开了,即使将来某一天银行的通信协议或者接口变更,对业务系统来说,都是无感知的,只需在中间代理层做修改即可。

输入图片说明

这里我主要想强调下中间代理中间状态的重要性。业务系统发起一笔业务,中间系统接收业务系统请求,封装通信协议 发送给银行,然后银行解析请求,操作具体业务,将结果返回给中间代理,中间代理负责解析请求,将结果告诉业务系统。试想中间代理要是状态不明,哪条链路断了都不清晰,解决问题就十分困难了。 其中涉及到4个链路,每个链路都有可能出问题。而且中间代理层要涉及到对请求和响应消息的编码和解码,有可能会因为一方的更改没有告诉另一方导致失败,所以中间代理层必须得定义出6个状态来标识一个正常的请求响应链路进行到了哪一步,而且都要详细记录请求报文和响应报文。

   **业务系统->中间代理: 已上报
   中间代理自处理:上报待处理
   中间代理->银行: 已发送
   银行->中间代理:待响应
   中间代理自处理:响应待处理
   中间代理->业务系统:已完成**

只有把这些状态边界定义清楚了,才能知道系统的问题出在哪里,才会有针对性的解决方案。

其实不仅仅是业务系统,设计到很多层面。例如 当我们的业务系统依赖MQ来做解耦时,就可以利用中间状态来实现消息的一致性问题,要保证业务成功 消息就成功,同理,业务失败,消息也要失败。(具体可以参加大型网站与java中间件中的互联网中间件这一章节)

共有 人打赏支持
粉丝 4
博文 11
码字总数 6574
×
jerrik
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: