【问题标题】:Spring microservices: response with info from other microservicesSpring 微服务:响应来自其他微服务的信息
【发布时间】:2016-03-27 22:11:18
【问题描述】:

假设我们有两个服务 AccountService 和 OrderService。两者都在 Eureka 注册。现在,第三个服务可以从 Eureka 获取有关这两个服务的信息并进行调用,但是我需要的是,当执行获取订单调用时,它应该在内部调用帐户服务以获取要填充到订单 bean 中的帐户信息,然后进行响应。请注意,每个服务的数据库都不同,并且帐户 ID 也存储在订单表中以供参考。 现在应该如何构建 Order 服务,以便在运行时它可以获取帐户并使用该信息构建订单对象。 现在,在所有实体都在单个 RDBMS 中的单体设计中,使用 hibernate 管理嵌套对象会非常容易,但不确定如何在微服务中处理它,而微服务的想法是完全解耦它们。

class Account(){
String name;
Long acct_id;
}
class Order(){
Account acct;
int order_id;
....
}

【问题讨论】:

    标签: java spring microservices netflix-eureka


    【解决方案1】:

    有多种方法可以做到这一点:

    1. 第三个服务可以调用order service获取订单信息,然后根据account id调用account service获取账户信息,构建order对象。

    2. Order Service 可以根据账号调用account service,并将其设置为order object,然后再响应第三个服务。

    3. Order Service 可以在其数据库中保留帐户信息的影子副本(例如,使用事件溯源),并且可以自行使用帐户信息构建 Order 对象。

    【讨论】:

      【解决方案2】:

      只需在您的模型中使用String acct_id 而不是Account acct。 (为什么帐户标识符是字符串?)

      【讨论】:

        猜你喜欢
        • 2017-07-23
        • 2017-03-31
        • 2019-11-15
        • 2017-12-31
        • 2017-08-31
        • 2022-10-02
        • 2021-12-10
        • 2017-03-20
        • 1970-01-01
        相关资源
        最近更新 更多