公司被拆分为很多子公司,系统自然也就全部拆分了。
现在系统和系统之前都是以接口打交道。
但是如果只是普通的查询还好,实际情况往往比较复杂,经常有以下几种场景
1.现在关键是业务的关联性很强,往往系统A调用接口B,B有比较复杂的业务数据操作。A传200个订单过去,可能B接口数据上处理成功了,但是接口却报了网关错误,然后我们系统内部任务发生错误,做了事物回滚,B系统却没办法控制回滚。
2.即使B接口调用成功,A获得成功结果后,有自己业务要处理。可能此处理业务失败了,但是此业务和B接口必须有事物的一致性。
如果不跨服务器,即使跨数据库,也无所谓。也可以用sqlserver的事物来处理,但现在用了接口,而且处理这种事物关联性强的业务,有没有好的方式?
如果说是分布式事务,是否不能跨平台?
这种情况太复杂了.
子系统之间互相不知道对方的具体实现.
系统A发起请求, 系统B修改了表b1;
系统C发起请求, 系统B修改了表b1;
系统A发起回滚, 系统B... ...;
理想的情况, 是有一个Master系统,负责去协调所有子系统的事务请求.
比如说所有的数据库写入操作都只有Master才能执行, 但这种设计的实现, 我觉得也是够呛.
这种问题在这儿问纯粹就是扯蛋。找个高手,给个十万八万的咨询费,让帮忙看看还差不多。
掏5K我就告诉你怎么做