微服务:跨服务验证和解耦?

时间:2018-12-26 14:07:53

标签: spring-boot architecture apache-kafka microservices spring-cloud-netflix

假设我有一个车辆服务和一个预订服务(使用经典的Spring Boot,Eureka和Zuul堆栈)。

当我想预订车辆时,例如,如果我想验证车辆是否存在,是否有比通过预订服务致电车辆服务更好的方法呢?

我希望应用程序保持解耦状态。

我当时想我可以使用Facade微服务来执行此检查,但是有更好的方法吗?

有没有可以确保去耦的验证模式,还是我应该忘记验证此类数据?

谢谢

1 个答案:

答案 0 :(得分:0)

不,没有。您必须致电车辆服务部门以检查车辆是否存在。 这里没有技术解决方案。您拥有车辆服务,该服务了解有关预订的车辆和预订服务。但是您要预订的资源需要该资源的所有者进行验证。

您可能会在预订服务中考虑与车辆有关的缓存信息,但我会建议您反对。

但是,您可能有biz解决方案。 有人会打电话给订票服务,并且会同时传递车辆信息。 现在,您的车辆服务可以在两组字段之间共享车辆信息。 InventoryIssueTimestamp和InventoryExpiryTimestamp。您几乎说了当有人预订时,我让他们有n分钟的库存。如果您在n分钟内完成预订,就可以了,否则您将进行状态检查。

您可能有类似的思考方式。但是,除非您有一些非常特殊的用例,否则这些更有可能是过度设计。进行验证调用通常是干净的。我试图解释这种情况的唯一原因是让您思考基于外部技术的解决方案。

相关问题