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


微服務的概念什么。。。。。。百度吧

第一步:麻煩自己先准備兩個普通的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作反向代理,將接口地址抽離出來,但當服務較多時。接口也增多,維護也麻煩)

所以:

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

  只當做筆記用。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM