微服務的概念什么。。。。。。百度吧
第一步:麻煩自己先准備兩個普通的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作反向代理,將接口地址抽離出來,但當服務較多時。接口也增多,維護也麻煩)
所以:
需要一個專門,管理,治理服務的中間件。。。具體是啥。。我還沒看到。回頭看到了再說
只當做筆記用。。。。