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