三方系统交互同步和异步设计问题?

同时对接A系统和B系统,一个请求从A系统发到我,我再去请求B系统,但是A系统要求同步返回结果,而B系统是异步返回结果的,这种情况怎么设计比较好?主要是如何满足A系统的同步返回的要求

阅读 2.3k
3 个回答

你可以:A请求过来的时候立马同步回给A一个标识符,表示请求已接受正在等待B系统返回。
接下来,A系统要么轮询你,直到B系统返回结果。要么你主动推送B的结果给A

A系统要同步返回这个,如果是返回具体结果基本上很难做到,就像你去商店买东西,但是商店这个时候说我仓库有我去打电话让他送过来,预计要明天才到,这个时候你可以选择这里一直等到明天,也可以付钱说明天你到了你打电话我,还有就是我每半个小时给你通话你告诉我好了没有
这里的比喻
1 一直等 这个就是同步 这个方案显然不太合理
2 付钱给你凭证等到了打电话 这个就是异步通知 这种相对来说是最节约成本
3 每隔30分钟问一次 一个就相当于主动查询 这种是比较笨的方案
4 还有一种可能性就是我能否提前请求上游当然好这个前提是我不依赖A系统的信息才能做到

在我看来技术上面三个方案其实都不符合你的需求,

你要考虑为啥
1下游需要同步为啥不能异步
2我能不能把上游变成同步
3 如果上面两个都解决不了 我是否就现在的三个方案问客户这边能接受的程度 比如方案2异步通知是否可以

以上是我对这个问题的考虑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏