对于第一种情况 - 客户端应用程序从两个来源(订单和用户)一起构建和汇总数据非常复杂
对于第二种情况 - 如果我们有两个以上的微服务,那么总请求时间将会增长
第三种情况与数据一致性问题(用户更改数据,但订单服务数据库尚未更新)
哪种情况最常用?
和小问题#2 - 在微服务和web api应用的情况下 - 每个微服务只包含一个或两个控制器?
答案 0 :(得分:3)
要回答你的所有三个案例,它将纯粹依赖于 微服务架构。
第一个案例 - >根据这种情况,您的客户必须通过调用不同的微服务来进行综合响应。这是客户端的开销,这是糟糕的架构方法。
第二种情况 - >与第一个相比,这是一个很好的方法。如果你有独立的数据库/表(没有任何直接关系)那么这将是一个很好的方法。您只需在各个表中存储orderId / userId的引用即可获取这些详细信息。您的总请求时间将分组,但您的用户模块将独立于订单模块工作。通过这种方法,您将实现松耦合。
第三种情况 - >如果您没有为每个微服务提供不同的数据库,那么这将是您最好的方法,因为它将减少对数据库以及其他微服务的调用次数。您可以通过为每个所需模型实施服务方法来获得直接详细信息。
哪种情况最常用?
<强>答。强> 我不认为任何人使用第一种方法是不好的做法。如果你有不同的微服务数据库,那么第二种情况就是你的答案。如果您有单个数据库,那么您也可以继续使用第三个案例。但是您的服务层代码将在不同的微服务上复制。
对于微服务和web api应用程序 - 每个微服务只包含一个或两个控制器?
每个微服务中没有控制器数量的标准。这将取决于微服务的大小和微服务所执行的职责。