Spring微服务:使用来自其他微服务的信息进行响应

时间:2015-12-21 18:49:57

标签: java spring microservices netflix-eureka

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

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

2 个答案:

答案 0 :(得分:1)

可以采用多种方法来实现这一目标:

  1. 第三项服务可以拨打订单服务获取订单信息,然后根据帐户ID,拨打帐户服务以获取帐户信息并构建订单对象。

  2. 订单服务可以根据帐号拨打帐户服务,并在回复第三项服务之前将其设置为订购对象。

  3. 订单服务可以在其数据库中保留帐户信息的卷影副本(例如,使用事件源),并且可以单独构建包含帐户信息的订单对象。

答案 1 :(得分:0)

在模型中使用String acct_id代替Account acct。 (为什么帐户标识符是字符串?)