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


免責聲明!

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



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