Spring-Cloud-Commons模塊

本文介紹SpringCloud的另一個基礎模塊 Spring Cloud Commons模塊 。只要在項目的pom文件中引入了 spring-cloud-starter 依賴包 ,就可以保證 spring-cloud-commons 的jar被引入。

Spring Cloud Commons模塊設計的目的,Spring Cloud Commons模塊是爲了對微服務中的服務註冊與發現、負載均衡、熔斷器等功能提供一個抽象層代碼,這個抽象層與具體的實現無關。這樣這些功能具體的實現上可以採用不同的技術去實現,並可以做到在使用時靈活的更換。

下面是一些常用的抽象點:

  1. @EnableDiscoveryClient
    該註解是用來在META-INF/spring.factorie文件中查找DiscoveryClient接口的實現類,並以Bean的形式加載到Spring的IoC容器中。在使用的時候會把這個註解加在SpringBoot的main類上。但這個註解在目前springCloud的Greenwich版本上已經不再需要了(也就是可有可無),只要引入具體的DiscoveryClient接口的jar依賴就可以,因爲具體實現包上會通過自動配置類進行設置。

  2. ServiceRegistry接口
    這個接口提供註冊Registration與撤銷Registration的註冊的方法。這裏的Registration是一個標記接口,用來描述一個服務實例,具體包含關於實例的信息,比如它的主機名和端口等信息。

  3. 讓Spring RestTemplate具備負載均衡功能
    在創建RestTemplate的Bean時使用@LoadBalanced註解,就可以自動配置爲使用ribbon。如下面的示例所示:

@Configuration
public class MyConfiguration {
    @LoadBalanced
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

public class MyClass {
    @Autowired
    private RestTemplate restTemplate;

    public String doOtherStuff() {        
        //注意:代碼中的url要使用服務名,而不是主機名
        String results = restTemplate.getForObject("http://stores/stores", String.class);
        return results;
    }
}

原文鏈接 https://www.cnblogs.com/hzhuxin/p/10562295.html

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