微服務的概念什麼。。。。。。百度吧java
第一步:麻煩本身先準備兩個普通的Spring boot 簡單的 demonginx
我寫的demo是這兩個數據庫
Spring Boot 中,服務消費者能夠直接遠程調用 服務提供者,代碼以下服務器
假設服務一 用戶服務中 UserApplication中有一個查詢用戶信息的接口(其餘簡單的鏈接數據庫,mapper文件不作多解釋)app
@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須要本身手動建立對象注入spa
在SouvenirApplication中 加入代碼代理
@Bean public RestTemplate getRestTemplate() { return new RestTemplate(); }
此時,訪問服務二中的接口 ,即可以調用服務一中的接口查詢數據rest
好吧,以前不知道竟然能夠直接調用,
不過 缺點很明顯, 接口地址硬編碼到代碼中,難以維護,
即便抽取爲配置文件,當一個接口變更時,也須要更改其餘服務調用者中的接口地址,重啓其餘的服務器(固然,可使用nginx做反向代理,將接口地址抽離出來,但當服務較多時。接口也增多,維護也麻煩)
因此:
須要一個專門,管理,治理服務的中間件。。。具體是啥。。我還沒看到。回頭看到了再說
只當作筆記用。。。。