一个系统需要在一个线程里面调用10个子系统,并获取子系统的数据。如何保证速度和可靠性?
如题,举例:现在有一个类似电商系统,当我下单时我要同时调用仓储系统,获取仓库里面某件商品数据,并修改状态。调用xxx系统执行某些操作。。。。差不多加入要调用10个子系统的处理数据。这种该怎么做?业内一般是怎么做的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
引用来自“乌龟壳”的评论
哪有那么好的事,全部放一个DB里是最简单的
其实说白了,只要能实现在任何环节失败都能够迅速恢复就行了
两阶段提交不是最终一致性,问题是谁来实现它?你如果愿意花精力去实现的话也可以啊,但不是简单的webservice。
引用来自“乌龟壳”的评论
哪有那么好的事,全部放一个DB里是最简单的
只是简单的接口,无法提供分布式的事务性,如果下单的时候一个环节失败了,其它部分却成功了怎么办?货发出去了但钱没收回来。
这种事情最简单的只有全部放在一个DB,或者如果你用的Oracle,用DB Link进行多个数据库的分布式事务。
引用来自“乌龟壳”的评论
哪有那么好的事,全部放一个DB里是最简单的
哪有那么好的事,全部放一个DB里是最简单的
在销售系统里定时更新这些子系统的数据,先保证客户能即时下单,然后后台用其他的方式,如MQ等更新子系统的数据,如果每次都是实时的和子系统交互就太慢了。
并发不大,那就考虑优化你的业务流程吧, 要不就按你的逻辑先完成业务流程吧, 慢慢来.
引用来自“zp-wmhx”的评论
是购物车,还是秒杀 ?
是购物车,还是秒杀 ?
Master-worker的情况是在没有处理完所有的任务就开始计算结果,但是返回最终的结果,是在所有的任务执行完才返回的。 1.rpc调用很慢,这个可以考虑其他的方式。 2.增加同步
引用来自“小七酱”的评论
master-worker
master-worker