文档章节

业务系统中间状态设计的重要性

jerrik
 jerrik
发布于 2017/09/10 13:14
字数 635
阅读 3
收藏 0
点赞 0
评论 0

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

输入图片说明

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

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

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

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

© 著作权归作者所有

共有 人打赏支持
jerrik
粉丝 3
博文 11
码字总数 6574
作品 0
深圳
分布式之BASE理论和补偿机制

事务和ACID 在分布式系统中,组件越来越微服务化,要完成一个业务流程需要多个微服务的配合。在执行的过程中,某个微服务难免会出现问题,为了保证业务执行的完整性和一致性,需要至少保证下...

_一苇航之_
06/03
0
0
第三部分 SOA项目的运维

第三部分,SOA项目的运维 在这一部分主要介绍运维阶段的工作,以及如何进行系统的改进和优化工作。 1 运维管理 运维管理就是对SOA系统的运行进行监控和管理。运维对象包括SOA基础设施(也包括...

朱律玮
2009/04/17
0
0
聊聊分布式事务

原文出处:员海滨 投稿 分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布式事务...

员海滨 投稿
2017/04/07
0
0
分布式事务

What’s 事务 事务(Transaction)及其ACID属性 事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性: 原子性(Atomicity):事务是一个原子操作单元,...

张孝国
2017/04/17
0
0
招商银行周伟:Fintech数据开放平台之数据库军规和内功修炼(含PPT)

在2018数据库大会上,招商银行的资深数据库架构师周伟,分享了招行金融科技数据开放平台的建设经验。这个主题引起了现场听众的广泛关注,我们在此整理发布出来,以其让更多用户能够借鉴到招商...

技术小能手
05/28
0
0
(四)购物商城数据库设计-订单系统设计

上一篇文章购物商城数据库设计-商品表设计中我们介绍了商品表的设计与实现。 接下来我们来一起设计下订单表。 订单系统在整个商城体系中的作用非常重要,因为一些业务的开展往往是围绕订单来...

tanghc
06/20
0
0
主流分布式架构的风流韵事...

一、前言 上篇文章,我们聊到了分布式架构的演进过程,那本文我们就来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了。分布式架构中,SOA和微...

Java填坑之路
07/13
0
0
设计分享——为什么要重视设计?

之前买书的时候,发现大家基本没考虑设计方面的书籍,感觉大家对设计这件事不够重视。所以技术分享的第一段,先讲几句做好设计、学好设计的重要性。 一 为什么重视设计(面向对象设计) 1. 业...

winters1224
06/26
0
0
电子商务系统:服务器的负载均衡与相关性能问题,求大神帮忙看看

题目背景:某公司拟建设一个在线的电子商务系统,该系统每日请求数大致有10万个,其中复杂请求占20%,简单请求运行大致2秒,复杂请求运行大致4s,该系统每天服务24h,其中高峰期4h。双11期间...

wangxigui
2013/12/04
190
5
微信小程序无埋点数据采集方案

作者:lxj 前言 相信业务团队对这样的场景不会太陌生: 打点需求: 每新上一个功能,数据产品便会同步加上打点需求,当数据打点上线后一段时间,数据产品/业务产品便会针对数据的转化率分析和...

美团点评点餐
2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS域名系统之域名竞拍

0x00 前言 其实在官方文档中已经对域名竞拍的过程有详细的描述,感兴趣的可以移步http://doc.neons.name/zh_CN/latest/nns_protocol.html#id30 此处查阅。 我这里主要对轻钱包开发中会用到的...

暖冰
今天
0
0
32.filter表案例 nat表应用 (iptables)

10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例: ~1. 写一个具体的iptables小案例,需求是把80端口、22端口、21 端口放行。但是,22端口我...

王鑫linux
今天
0
0
shell中的函数&shell中的数组&告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析

影夜Linux
今天
0
0
Linux网络基础、Linux防火墙

Linux网络基础 ip addr 命令 :查看网口信息 ifconfig命令:查看网口信息,要比ip addr更明了一些 centos 7默认没安装ifconfig命令,可以使用yum install -y net-tools命令来安装。 ifconfig...

李超小牛子
今天
1
0
[机器学习]回归--Decision Tree Regression

CART决策树又称分类回归树,当数据集的因变量为连续性数值时,该树算法就是一个回归树,可以用叶节点观察的均值作为预测值;当数据集的因变量为离散型数值时,该树算法就是一个分类树,可以很...

wangxuwei
昨天
1
0
Redis做分布式无锁CAS的问题

因为Redis本身是单线程的,具备原子性,所以可以用来做分布式无锁的操作,但会有一点小问题。 public interface OrderService { public String getOrderNo();} public class OrderRe...

算法之名
昨天
10
0
143. Reorder List - LeetCode

Question 143. Reorder List Solution 题目大意:给一个链表,将这个列表分成前后两部分,后半部分反转,再将这两分链表的节点交替连接成一个新的链表 思路 :先将链表分成前后两部分,将后部...

yysue
昨天
1
0
数据结构与算法1

第一个代码,描述一个被称为BankAccount的类,该类模拟了银行中的账户操作。程序建立了一个开户金额,显示金额,存款,取款并显示余额。 主要的知识点联系为类的含义,构造函数,公有和私有。...

沉迷于编程的小菜菜
昨天
1
0
从为什么别的队伍总比你的快说起

在机场候检排队的时候,大多数情况下,别的队伍都要比自己所在的队伍快,并常常懊悔当初怎么没去那个队。 其实,最快的队伍只能有一个,而排队之前并不知道那个队快。所以,如果有六个队伍你...

我是菜鸟我骄傲
昨天
1
0
分布式事务常见的解决方案

随着互联网的发展,越来越多的多服务相互之间的调用,这时候就产生了一个问题,在单项目情况下很容易实现的事务控制(通过数据库的acid控制),变得不那么容易。 这时候就产生了多种方案: ...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部