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