假设我有一个车辆服务和一个预订服务(使用一个经典的spring boot,eureka,zuul stack)。当我想预订车辆时,如果我想验证车辆是否存在,是否有比从预订服务中致电车辆服务更好的方法?我希望应用程序保持解耦。我想我可以有一个门面微服务,可以做这个检查,但有没有更好的办法呢?是否有任何验证模式可以确保解耦,或者我应该忘记验证这些数据吗?谢谢
ojsjcaue1#
不,没有。你必须打电话给车辆服务部,检查车辆是否存在。这里没有技术解决方案。你有一个车辆服务,它了解车辆和预订服务,处理预订。但是您预订的资源需要由该资源的所有者进行验证。您可能会考虑在预订服务中缓存与车辆相关的信息,但我会建议您不要这样做。然而,你可能有商业解决方案围绕它。有人会打电话给订票服务,并将车辆信息传递到旁边。现在,您的车辆服务可以在两组字段旁共享车辆信息。inventoryissuetimestamp和inventoryexpirytimestamp。你差不多是说,当有人预订时,我让他们有n分钟的库存。如果预订在n分钟内完成,您就可以了,否则您需要进行状态检查。你也可以用类似的方式来思考。但这些更可能是过度工程,除非您有一些非常具体的用例。进行验证调用基本上是干净的。我试图解释这个场景的唯一原因是让你们思考一个基于技术的解决方案之外的问题。
1条答案
按热度按时间ojsjcaue1#
不,没有。你必须打电话给车辆服务部,检查车辆是否存在。这里没有技术解决方案。你有一个车辆服务,它了解车辆和预订服务,处理预订。但是您预订的资源需要由该资源的所有者进行验证。
您可能会考虑在预订服务中缓存与车辆相关的信息,但我会建议您不要这样做。
然而,你可能有商业解决方案围绕它。有人会打电话给订票服务,并将车辆信息传递到旁边。现在,您的车辆服务可以在两组字段旁共享车辆信息。inventoryissuetimestamp和inventoryexpirytimestamp。你差不多是说,当有人预订时,我让他们有n分钟的库存。如果预订在n分钟内完成,您就可以了,否则您需要进行状态检查。
你也可以用类似的方式来思考。但这些更可能是过度工程,除非您有一些非常具体的用例。进行验证调用基本上是干净的。我试图解释这个场景的唯一原因是让你们思考一个基于技术的解决方案之外的问题。