假设有两项服务,
优惠券已针对该产品进行了标记。当为任何产品更改优惠券时,都会有一个从产品服务到优惠券服务的API调用,该API会计算优惠券折扣并将其发送回产品服务。产品服务维护该缓存。但是,要计算折扣,优惠券服务需要产品信息,例如产品类别,SKU类型等,并且折扣基于此而变化,因此再次有对产品服务的API调用,使其成为循环调用。有两种解决方案,
解决此问题的正确方法是什么?
答案 0 :(得分:0)
如果您决定为此需要2种不同的服务,那么我同意周期性依赖是一种不好的做法,值得一试。
但是,我真的没有看到这里需要它。我认为“优惠券”服务需要了解“产品”服务,但反之亦然。
您遇到的问题是,优惠券服务需要响应产品服务上发生的更改。现在,您通过让产品服务向优惠券服务发送消息来解决此问题。
一些解决方法包括:
我会建议第三个选择。在我看来,产品服务中根本不应该存在“优惠券变更”这一概念。为什么呢听起来您实际上可能有3种不同的服务: