我正在调查spring-cloud,并且我已经设置了两个微服务" offer"和"客户"作为尤里卡的客户。
客户应用有:
@Data
public class Customer extends ResourceSupport {
private Long customerId;
private String name;
}
@RestController
@RequestMapping("/customers")
@ExposesResourceFor(Customer.class)
public class CustomersController {
...
}
并且优惠应用有:
@Data
public class Offer extends ResourceSupport {
private final Long offerId;
private final Long priceI;
private final Customer customer;
}
@RestController
@RequestMapping("/offers")
@ExposesResourceFor(Offer.class)
public class OfferController {
...
}
我如何整理代码,以便您可以向Customer
个实例添加Offer
个链接?自动装配EntityLink
当然不会起作用,因为这两个控制器位于不同的应用程序中。
为所有带有@RequestMapping
的控制器创建接口并在所有应用程序中共享inerfaces是否合理是否合理,以便您可以使用例如Link link = linkTo(methodOn(OfferController.class).getOffer(2L)).withSelfRel();
?
答案 0 :(得分:1)
根据需要链接多少方法,我会手动构建链接,或者在应用程序之间共享api-s并从这些描述符构建链接。我不会为一些链接引入依赖。
更有趣的问题是您打算将哪些内容设置为链接主机?服务的实际主机或尤里卡ID?我建议设置服务的id,然后设置一个zuul实例并处理负载均衡和代理。
P.S:当连接服务时,我总是发现自己在连接它们时遇到了麻烦。部署速度和弹性可能会受到很大影响。