Spring Cloud入門(一) 服務提供者和服務消費者

微服務的概念什麼。。。。。。百度吧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做反向代理,將接口地址抽離出來,但當服務較多時。接口也增多,維護也麻煩)

因此:

    須要一個專門,管理,治理服務的中間件。。。具體是啥。。我還沒看到。回頭看到了再說

  只當作筆記用。。。。

相關文章
相關標籤/搜索