Spring RestTemplate作爲負載平衡器客戶端

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文檔 ,瞭解屬性的具體內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章