微服务的概念什么。。。。。。百度吧
第一步:麻烦自己先准备两个普通的Spring boot 简单的 demo
我写的demo是这两个
Spring Boot 中,服务消费者可以直接远程调用 服务提供者,代码如下
假设服务一 用户服务中 UserApplication中有一个查询用户信息的接口(其他简单的连接数据库,mapper文件不做多解释)
@RestController public class UserController { @Resource private UserService userService; @GetMapping("/queryOne/{id}") public User queryOne(@PathVariable Long id) { return userService.queryOne(id); } }
现在服务二 纪念品服务 SouvenirApplication中, 需要调用服务一 中的获取用户信息的接口
则需要做 以下的 操作
@RestController public class SouvenirController { //个人理解为远程调用的模板对象 @Resource private RestTemplate restTemplate; @GetMapping("/buySouvenir/{id}") public User buySouvenir(@PathVariable Long id) { //服务一中的接口地址 return restTemplate.getForObject("http://localhost:8080/queryOne/"+id, User.class); } }
其中 restTemplate需要自己手动创建对象注入
在SouvenirApplication中 加入代码
@Bean public RestTemplate getRestTemplate() { return new RestTemplate(); }
此时,访问服务二中的接口 ,便可以调用服务一中的接口查询数据
好吧,之前不知道居然可以直接调用,
不过 缺点很明显, 接口地址硬编码到代码中,难以维护,
即使抽取为配置文件,当一个接口变动时,也需要更改其他服务调用者中的接口地址,重启其他的服务器(当然,可以使用nginx作反向代理,将接口地址抽离出来,但当服务较多时。接口也增多,维护也麻烦)
所以:
需要一个专门,管理,治理服务的中间件。。。具体是啥。。我还没看到。回头看到了再说
只当做笔记用。。。。