SpringCloud2.0 Eureka

1.搭建Eureka服務端
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

開啓註解@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

配置文件

eureka:
  instance:
    prefer-ip-address: true
    ip-address: 192.168.3.5
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://192.168.3.5:8080/eureka/
  server:
      eviction-interval-timer-in-ms: 6000   # 心跳檢查時間
      enableSelfPreservation: false         # 關閉保護模式
2.eureka客戶端
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>  
eureka:
  instance:
    prefer-ip-address: true
    lease-renewal-interval-in-seconds: 5      # 服務續約間隔時間(缺省爲30s)
    lease-expiration-duration-in-seconds: 10  # 服務續約到期時間(缺省爲90s)
  client:
    healthcheck:
      enabled: true     # 健康檢查(需要spring-boot-starter-actuator依賴)
    service-url:
      defaultZone: http://192.168.3.5:8080/eureka/

3.resttemplate調用

@Configuration
public class RestTemplateConfig {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.build();

    }
}
4.多restemplate配置
@Configuration
public class MyConfiguration {

    @LoadBalanced
    @Bean
    RestTemplate loadBalanced() {
        return new RestTemplate();
    }

    @Primary
    @Bean
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

public class MyClass {
    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    @LoadBalanced
    private RestTemplate loadBalanced;

    public String doOtherStuff() {
        return loadBalanced.getForObject("http://stores/stores", String.class);
    }

    public String doStuff() {
        return restTemplate.getForObject("http://example.com", String.class);
    }
}

參考文檔:
http://cloud.spring.io/spring-cloud-static/Camden.SR3/#_multiple_resttemplate_objects

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