Вот мои зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
Когда мое приложение Spring Boot зарегистрировано в Eureka, я могу определить компонент RestTemplate
следующим образом:
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
И в моем службы Я могу отправлять запросы другим службам, используя их зарегистрированные spring.application.name
:
restTemplate.getForEntity("http://application1/test", String.class);
Как определить, где http://application1/
находится с отключенной Eureka?
eureka.client.enabled=false
Тест текущей реализации :
@Configuration
public class RibbonConfig {
@Bean
public ServerList<Server> serverServerList() {
return new ConfigurationBasedServerList();
}
}
@Configuration
public class WebConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
@Component
public class TestService implements CommandLineRunner {
@Autowired
private RestTemplate restTemplate;
@Override
public void run(String... args) throws Exception {
ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://application1/test", String.class);
System.out.println(responseEntity);
}
}
@RibbonClient(value = "application1", configuration = RibbonConfig.class)
@SpringBootApplication
public class Demo5Application {
public static void main(String[] args) {
SpringApplication.run(Demo5Application.class, args);
}
}
bootstrap .yml
eureka:
client:
enabled: false
application1:
ribbon:
list-of-servers: http://localhost:8081/