Spring Cloud Commons模塊


  上一篇介紹了 Spring Cloud Context模塊 ,本文介紹SpringCloud的另一個基礎模塊 SpringCloud 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; } }

 

    


免責聲明!

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



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