RestTemplate可以自動配置為使用功能區。要建立負載平衡RestTemplate建立RestTemplate @Bean並使用@LoadBalanced限定符。
警告 通過自動配置不再建立RestTemplate bean。它必須由單個應用程式建立。 @Configuration public class MyConfiguration {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
複製程式碼
}
public class MyClass { @Autowired private RestTemplate restTemplate;
public String doOtherStuff() {
String results = restTemplate.getForObject("http://stores/stores", String.class);
return results;
}
複製程式碼
} URI需要使用虛擬主機名(即服務名稱,而不是主機名)。Ribbon客戶端用於建立完整的實體地址。有關 如何設定RestTemplate的詳細資訊,請參閱 RibbonAutoConfiguration。
重試失敗的請求
負載平衡RestTemplate可以配置為重試失敗的請求。預設情況下,該邏輯被禁用,您可以通過將Spring重試新增到應用程式的類路徑來啟用它。負載平衡RestTemplate將符合與重試失敗請求相關的一些Ribbon配置值。如果要在類路徑中使用Spring重試來禁用重試邏輯,則可以設定spring.cloud.loadbalancer.retry.enabled=false。您可以使用的屬性是client.ribbon.MaxAutoRetries,client.ribbon.MaxAutoRetriesNextServer和client.ribbon.OkToRetryOnAllOperations。請參閱Ribbon文件 ,瞭解屬性的具體內容。
注意 上述示例中的client應替換為您的Ribbon客戶端名稱。
![Spring Cloud Commons教程(二)Spring RestTemplate作為負載平衡器客戶端](https://i.iter01.com/images/cc875ad86694c1c9b8c441fea29e4f567f286e1c42e28484680880ccf5f58ceb.png)
原始碼來源:http://minglisoft.cn/honghu/technology.html