开篇:微服务之间怎么互相调用?
在单体应用里,一个模块调另一个模块,就是普通的方法调用——写个 userService.getUser(id) 就完事了。但微服务拆分后,用户服务和订单服务跑在不同的机器上,方法调用变成了网络请求。
最原始的做法是用 RestTemplate 手动构造 HTTP 请求:
// 手动拼 URL,手动解析响应,一堆模板代码
String url = "http://user-service/api/users/" + userId;
UserDTO user = restTemplate.getForObject(url, UserDTO.class);
大约 5 分钟