前面我们已经利用RestTemplate实现了order服务和User服务之间的通信。
还记得之前User我搭建了两个服务,那么order服务访问user的时候是走的哪个服务去拿的数据呢,我们可以在user服务的controller类里面稍微改动一下:
@RestController
public class UserController {
@Value("${server.port}")
private int port; //这里读取的是当前服务器端端口
@GetMapping("/user/{id}")
public User getUserById(@PathVariable("id") Long id){
return new User(1L,"java","123456","端口号"+port);
}
}
这样就可以在浏览器看到端口号了,重启User和Order服务测试访问:
peer1:1030/order/1
不知道有没有注意到,这里我们是直接访问的user,我们没有走注册中心去获取ip和端口,eureka的作用就是注册与发现,当服务调用的时候应该先去注册中心拿到目标的ip和端口,然后发起调用,我们这里是把地址写和端口写死了