Spring 微服务:使用来自其他微服务的信息进行响应
Spring microservices: response with info from other microservices
假设我们有两个服务 AccountService 和 OrderService。两者都在 Eureka 注册。现在,第三个服务可以从 Eureka 获取有关这两个服务的信息并进行调用,但是我需要的是在执行获取订单调用时,它应该在内部调用帐户服务以获取要在订单 bean 中填写的帐户信息,然后响应。请注意,每项服务的数据库不同,帐户 ID 按 table 顺序存储,以供参考。
现在应该如何构建订单服务,以便在 运行 时间它可以获取帐户并使用该信息构建订单对象。
现在在所有实体都在单个 RDBMS 中的单体设计中,使用休眠管理嵌套对象本来会非常容易,但是不确定如何在微服务中处理它,因为微服务的想法是将它们完全解耦。
class Account(){
String name;
Long acct_id;
}
class Order(){
Account acct;
int order_id;
....
}
只需在您的模型中使用 String acct_id
而不是 Account acct
。 (为什么账户标识符是字符串?)
有多种方法可以做到这一点:
第三个服务可以调用订单服务获取订单信息,然后根据账户id,调用账户服务获取账户信息并构建订单对象。
Order Service可以根据账号调用account service设置为order object再响应第三个service
Order Service 可以在其数据库中保留帐户信息的影子副本(例如使用事件源),并且可以自行构建包含帐户信息的 Order 对象。
假设我们有两个服务 AccountService 和 OrderService。两者都在 Eureka 注册。现在,第三个服务可以从 Eureka 获取有关这两个服务的信息并进行调用,但是我需要的是在执行获取订单调用时,它应该在内部调用帐户服务以获取要在订单 bean 中填写的帐户信息,然后响应。请注意,每项服务的数据库不同,帐户 ID 按 table 顺序存储,以供参考。 现在应该如何构建订单服务,以便在 运行 时间它可以获取帐户并使用该信息构建订单对象。 现在在所有实体都在单个 RDBMS 中的单体设计中,使用休眠管理嵌套对象本来会非常容易,但是不确定如何在微服务中处理它,因为微服务的想法是将它们完全解耦。
class Account(){
String name;
Long acct_id;
}
class Order(){
Account acct;
int order_id;
....
}
只需在您的模型中使用 String acct_id
而不是 Account acct
。 (为什么账户标识符是字符串?)
有多种方法可以做到这一点:
第三个服务可以调用订单服务获取订单信息,然后根据账户id,调用账户服务获取账户信息并构建订单对象。
Order Service可以根据账号调用account service设置为order object再响应第三个service
Order Service 可以在其数据库中保留帐户信息的影子副本(例如使用事件源),并且可以自行构建包含帐户信息的 Order 对象。