Microservices 共享微服务的微服务模式

Microservices 共享微服务的微服务模式,microservices,Microservices,假设我有一个使用多个微服务的应用程序。其中两个是用户(/USERS)和汽车(/CARS)。 给定一个名为租车历史(/users/{id}/history)的页面,其中列出了用户租用的汽车 我是否应该引入中介微服务租赁(/rent),它可以查询其他两个微服务以获得最佳的架构设计 如果我想在不同品牌下部署此应用程序,那么正确的设计是什么?这意味着用户数据库将不同,但车辆数据库将在应用程序之间共享?我强烈建议您使用租赁微服务来协调用户租车(和归还等)的过程。然后,逻辑只出现在租赁服务中,而不是分散在许

假设我有一个使用多个微服务的应用程序。其中两个是用户(/USERS)和汽车(/CARS)。 给定一个名为租车历史(/users/{id}/history)的页面,其中列出了用户租用的汽车

我是否应该引入中介微服务租赁(/rent),它可以查询其他两个微服务以获得最佳的架构设计


如果我想在不同品牌下部署此应用程序,那么正确的设计是什么?这意味着用户数据库将不同,但车辆数据库将在应用程序之间共享?

我强烈建议您使用租赁微服务来协调用户租车(和归还等)的过程。然后,逻辑只出现在租赁服务中,而不是分散在许多其他服务中(包括UI和用于此目的的服务)


我会质疑不同的品牌是否需要完全不同的用户服务,因为有很多共同的功能。使用带有品牌名称空间用户ID的通用用户服务(例如,租赁服务不需要了解品牌)和一些特定于品牌的外观(例如,将名称空间添加到ID中,甚至可以处理诸如频繁租赁程序之类的事情)可能是有意义的。

谢谢。所以基本上,最好的策略是拥有一个数据库,每个微服务一个,并在用户表中为品牌添加一个鉴别器列?如果我想做一些统计,比如使用租赁微服务的品牌租赁计数,我是否可以通过加入表(用户租赁)来执行只读操作,或者将鉴别器列传播到租赁表是更好的做法?如果租赁服务需要知道,我会推荐这些选项(例如,对于分析)与用户相关的品牌,它应该在租赁服务所拥有的表中而不被加入。(我确实倾向于不使用2个微服务共享任何可以查询的东西:这排除了用户和出租人之间的可靠连接)。不过,我认为,将品牌编码成用户ID。(例如,
品牌:userid
)至少对于直接接触用户服务的任何内容。