diff --git a/pom.xml b/pom.xml
index 197074c455..5d8358f05e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -726,9 +726,11 @@
spring-cloud-modules/spring-cloud-circuit-breaker
spring-cloud-modules/spring-cloud-contract
spring-cloud-modules/spring-cloud-data-flow
+ spring-cloud-modules/spring-cloud-eureka
spring-cloud-modules/spring-cloud-netflix-feign
spring-cloud-modules/spring-cloud-stream-starters
spring-cloud-modules/spring-cloud-zuul-eureka-integration
+
spring-exceptions
spring-jenkins-pipeline
spring-core
@@ -1004,11 +1006,13 @@
spring-drools
spring-cloud-modules/spring-cloud-azure
spring-cloud-modules/spring-cloud-circuit-breaker
+ spring-cloud-modules/spring-cloud-eureka
spring-cloud-modules/spring-cloud-contract
spring-cloud-modules/spring-cloud-data-flow
spring-cloud-modules/spring-cloud-netflix-feign
spring-cloud-modules/spring-cloud-stream-starters
spring-cloud-modules/spring-cloud-zuul-eureka-integration
+
spring-exceptions
spring-jenkins-pipeline
spring-core
diff --git a/spring-cloud-modules/pom.xml b/spring-cloud-modules/pom.xml
index b21b208414..a098bc90a9 100644
--- a/spring-cloud-modules/pom.xml
+++ b/spring-cloud-modules/pom.xml
@@ -19,7 +19,8 @@
spring-cloud-loadbalancer
spring-cloud-config
- spring-cloud-eureka
+
+
spring-cloud-hystrix
spring-cloud-bootstrap
spring-cloud-ribbon-client
diff --git a/spring-cloud-modules/spring-cloud-eureka/pom.xml b/spring-cloud-modules/spring-cloud-eureka/pom.xml
index 23523f2c2f..599853c675 100644
--- a/spring-cloud-modules/spring-cloud-eureka/pom.xml
+++ b/spring-cloud-modules/spring-cloud-eureka/pom.xml
@@ -45,8 +45,6 @@
- 2.1.2.RELEASE
- Greenwich.RELEASE
2.17.1
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml
index 4fdfe2d9c2..08a85d191a 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/pom.xml
@@ -41,7 +41,7 @@
org.springframework.cloud
- spring-cloud-starter-netflix-ribbon
+ spring-cloud-starter-loadbalancer
org.springframework.cloud
@@ -51,6 +51,20 @@
org.springframework.boot
spring-boot-starter-web
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+
+
+ io.projectreactor
+ reactor-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ 2.6.8
+
com.github.tomakehurst
wiremock
@@ -75,9 +89,18 @@
+
+
+ repository.spring.milestone
+ Spring Milestone Repository
+ https://repo.spring.io/release
+
+
+
+ org.apache.maven.plugins
maven-surefire-plugin
1
@@ -87,4 +110,9 @@
+
+ 17
+ 17
+
+
\ No newline at end of file
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/main/java/com/baeldung/spring/cloud/client/BooksClient.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/main/java/com/baeldung/spring/cloud/client/BooksClient.java
index a263624b28..97d8643e19 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/main/java/com/baeldung/spring/cloud/client/BooksClient.java
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/main/java/com/baeldung/spring/cloud/client/BooksClient.java
@@ -1,16 +1,15 @@
package com.baeldung.spring.cloud.client;
-import com.baeldung.spring.cloud.model.Book;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.RequestMapping;
-
import java.util.List;
-@FeignClient("books-service")
-//@FeignClient(value="simple-books-client", url="${book.service.url}")
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import com.baeldung.spring.cloud.model.Book;
+
+@FeignClient(name = "books-service")
public interface BooksClient {
@RequestMapping("/books")
List getBooks();
-
}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/BooksClientIntegrationTest.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/BooksClientIntegrationTest.java
index 2842eef435..7f4807e356 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/BooksClientIntegrationTest.java
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/BooksClientIntegrationTest.java
@@ -8,6 +8,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -21,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
@SpringBootTest
@ActiveProfiles("test")
+@EnableFeignClients
@EnableConfigurationProperties
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = { WireMockConfig.class })
@@ -29,12 +31,16 @@ class BooksClientIntegrationTest {
@Autowired
private WireMockServer mockBooksService;
+ @Autowired
+ private WireMockServer mockBooksService2;
+
@Autowired
private BooksClient booksClient;
@BeforeEach
void setUp() throws IOException {
setupMockBooksResponse(mockBooksService);
+ setupMockBooksResponse(mockBooksService2);
}
@Test
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/EurekaContainerConfig.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/EurekaContainerConfig.java
index 6747d14b88..10ea3ffa34 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/EurekaContainerConfig.java
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/EurekaContainerConfig.java
@@ -31,9 +31,6 @@ public class EurekaContainerConfig {
+ eurekaServer.getFirstMappedPort().toString()
+ "/eureka")
.applyTo(configurableApplicationContext);
-
}
-
}
-
}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerBooksClientIntegrationTest.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerBooksClientIntegrationTest.java
index f05df11ba3..5690c24d77 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerBooksClientIntegrationTest.java
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerBooksClientIntegrationTest.java
@@ -9,23 +9,39 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.client.DefaultServiceInstance;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.loadbalancer.Response;
+import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer;
+import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
+import org.springframework.cloud.loadbalancer.core.RoundRobinLoadBalancer;
+import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
+import org.springframework.cloud.loadbalancer.support.ServiceInstanceListSuppliers;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
import static com.baeldung.spring.cloud.client.BookMocks.setupMockBooksResponse;
import static com.github.tomakehurst.wiremock.client.WireMock.getRequestedFor;
import static com.github.tomakehurst.wiremock.client.WireMock.moreThan;
import static java.util.Arrays.asList;
+import static org.assertj.core.api.BDDAssertions.then;
import static org.junit.jupiter.api.Assertions.assertTrue;
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+
@SpringBootTest
-@ActiveProfiles("ribbon-test")
+@ActiveProfiles("test")
@EnableConfigurationProperties
+@EnableFeignClients
@ExtendWith(SpringExtension.class)
-@ContextConfiguration(classes = { RibbonTestConfig.class })
+@ContextConfiguration(classes = { TestConfig.class })
class LoadBalancerBooksClientIntegrationTest {
@Autowired
@@ -37,10 +53,22 @@ class LoadBalancerBooksClientIntegrationTest {
@Autowired
private BooksClient booksClient;
+ @Autowired
+ private LoadBalancerClientFactory clientFactory;
+
@BeforeEach
void setUp() throws IOException {
setupMockBooksResponse(mockBooksService);
setupMockBooksResponse(secondMockBooksService);
+
+ String serviceId = "books-service";
+ RoundRobinLoadBalancer loadBalancer = new RoundRobinLoadBalancer(ServiceInstanceListSuppliers
+ .toProvider(serviceId, instance(serviceId, "localhost", false), instance(serviceId, "localhost", true)),
+ serviceId, -1);
+ }
+
+ private static DefaultServiceInstance instance(String serviceId, String host, boolean secure) {
+ return new DefaultServiceInstance(serviceId, serviceId, host, 80, secure);
}
@Test
@@ -62,4 +90,53 @@ class LoadBalancerBooksClientIntegrationTest {
new Book("Dune", "Frank Herbert"),
new Book("Foundation", "Isaac Asimov"))));
}
+
+ @Test
+ void loadbalancerWorks() throws IOException {
+
+ setupMockBooksResponse(mockBooksService);
+ setupMockBooksResponse(secondMockBooksService);
+
+ ReactiveLoadBalancer reactiveLoadBalancer = this.clientFactory.getInstance("books-service",
+ ReactiveLoadBalancer.class, ServiceInstance.class);
+
+ then(reactiveLoadBalancer).isInstanceOf(RoundRobinLoadBalancer.class);
+ then(reactiveLoadBalancer).isInstanceOf(ReactorLoadBalancer.class);
+ ReactorLoadBalancer loadBalancer = (ReactorLoadBalancer) reactiveLoadBalancer;
+
+ for (int k = 0; k < 10; k++) {
+ booksClient.getBooks();
+ }
+
+ // order dependent on seedPosition -1 of RoundRobinLoadBalancer
+ List hosts = Arrays.asList("localhost", "localhost");
+
+ assertLoadBalancer(loadBalancer, hosts);
+
+ mockBooksService.verify(
+ moreThan(0), getRequestedFor(WireMock.urlEqualTo("/books")));
+ secondMockBooksService.verify(
+ moreThan(0), getRequestedFor(WireMock.urlEqualTo("/books")));
+ }
+
+ private void assertLoadBalancer(ReactorLoadBalancer loadBalancer, List hosts) {
+ for (String host : hosts) {
+ Mono> source = loadBalancer.choose();
+ StepVerifier.create(source).consumeNextWith(response -> {
+ then(response).isNotNull();
+ then(response.hasServer()).isTrue();
+
+ ServiceInstance instance = response.getServer();
+ then(instance).isNotNull();
+ then(instance.getHost()).as("instance host is incorrect %s", host).isEqualTo(host);
+
+ if (host.contains("secure")) {
+ then(instance.isSecure()).isTrue();
+ }
+ else {
+ then(instance.isSecure()).isFalse();
+ }
+ }).verifyComplete();
+ }
+ }
}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerIntegrationTest.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerIntegrationTest.java
new file mode 100644
index 0000000000..eee4e7b860
--- /dev/null
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/LoadBalancerIntegrationTest.java
@@ -0,0 +1,112 @@
+package com.baeldung.spring.cloud.client;
+
+import static org.assertj.core.api.BDDAssertions.then;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cloud.client.DefaultServiceInstance;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.loadbalancer.Response;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClients;
+import org.springframework.cloud.loadbalancer.core.ReactorLoadBalancer;
+import org.springframework.cloud.loadbalancer.core.RoundRobinLoadBalancer;
+import org.springframework.cloud.loadbalancer.core.ServiceInstanceListSupplier;
+import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
+import org.springframework.cloud.loadbalancer.support.ServiceInstanceListSuppliers;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Bean;
+import org.springframework.core.env.Environment;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+import com.github.tomakehurst.wiremock.WireMockServer;
+
+import reactor.core.publisher.Mono;
+import reactor.test.StepVerifier;
+
+@SpringBootTest
+@EnableFeignClients
+@EnableConfigurationProperties
+@ExtendWith(SpringExtension.class)
+@ActiveProfiles("test")
+@ContextConfiguration(classes = { TestConfig.class })
+class LoadBalancerIntegrationTest {
+
+ @Autowired
+ private LoadBalancerClientFactory clientFactory;
+
+ @Autowired
+ private BooksClient booksClient;
+
+ @Autowired
+ private WireMockServer mockBooksService;
+
+ @Autowired
+ private WireMockServer secondMockBooksService;
+
+ private void assertLoadBalancer(ReactorLoadBalancer loadBalancer, List hosts) {
+ for (String host : hosts) {
+ Mono> source = loadBalancer.choose();
+ StepVerifier.create(source).consumeNextWith(response -> {
+ then(response).isNotNull();
+ then(response.hasServer()).isTrue();
+
+ ServiceInstance instance = response.getServer();
+ then(instance).isNotNull();
+ then(instance.getHost()).as("instance host is incorrect %s", host).isEqualTo(host);
+
+ if (host.contains("secure")) {
+ then(instance.isSecure()).isTrue();
+ }
+ else {
+ then(instance.isSecure()).isFalse();
+ }
+ }).verifyComplete();
+ }
+ }
+
+ @Test
+ void staticConfigurationWorks() {
+ String serviceId = "test-book-service";
+ RoundRobinLoadBalancer loadBalancer = new RoundRobinLoadBalancer(ServiceInstanceListSuppliers
+ .toProvider(serviceId, instance(serviceId, "bookservice1", false), instance(serviceId, "bookservice2", false)),
+ serviceId, -1);
+ assertLoadBalancer(loadBalancer, Arrays.asList("bookservice1", "bookservice2"));
+ }
+
+ private static DefaultServiceInstance instance(String serviceId, String host, boolean secure) {
+ return new DefaultServiceInstance(serviceId, serviceId, host, 80, secure);
+ }
+
+ @EnableAutoConfiguration
+ @SpringBootConfiguration(proxyBeanMethods = false)
+ @LoadBalancerClients({ @LoadBalancerClient(name = "books-service", configuration = MyBooksServiceConfig.class) })
+ @EnableCaching
+ protected static class Config {
+
+ }
+
+ protected static class MyBooksServiceConfig {
+
+ @Bean
+ public RoundRobinLoadBalancer roundRobinContextLoadBalancer(LoadBalancerClientFactory clientFactory,
+ Environment env) {
+ String serviceId = LoadBalancerClientFactory.getName(env);
+ return new RoundRobinLoadBalancer(
+ clientFactory.getLazyProvider(serviceId, ServiceInstanceListSupplier.class), serviceId, -1);
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/RibbonTestConfig.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/RibbonTestConfig.java
deleted file mode 100644
index 273ba182b1..0000000000
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/RibbonTestConfig.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.baeldung.spring.cloud.client;
-
-import com.github.tomakehurst.wiremock.WireMockServer;
-import com.netflix.loadbalancer.Server;
-import com.netflix.loadbalancer.ServerList;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.TestConfiguration;
-import org.springframework.cloud.netflix.ribbon.StaticServerList;
-import org.springframework.context.annotation.Bean;
-import org.springframework.test.context.ActiveProfiles;
-
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
-
-@TestConfiguration
-@ActiveProfiles("ribbon-test")
-public class RibbonTestConfig {
-
- @Autowired
- private WireMockServer mockBooksService;
-
- @Autowired
- private WireMockServer secondMockBooksService;
-
- @Bean(initMethod = "start", destroyMethod = "stop")
- public WireMockServer mockBooksService() {
- return new WireMockServer(options().dynamicPort());
- }
-
- @Bean(name="secondMockBooksService", initMethod = "start", destroyMethod = "stop")
- public WireMockServer secondBooksMockService() {
- return new WireMockServer(options().dynamicPort());
- }
-
- @Bean
- public ServerList ribbonServerList() {
- return new StaticServerList<>(
- new Server("localhost", mockBooksService.port()),
- new Server("localhost", secondMockBooksService.port()));
- }
-
-}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/TestConfig.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/TestConfig.java
new file mode 100644
index 0000000000..b3770721b1
--- /dev/null
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/TestConfig.java
@@ -0,0 +1,24 @@
+package com.baeldung.spring.cloud.client;
+
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
+
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.context.annotation.Bean;
+import org.springframework.test.context.ActiveProfiles;
+
+import com.github.tomakehurst.wiremock.WireMockServer;
+
+@TestConfiguration
+@ActiveProfiles("test")
+public class TestConfig {
+
+ @Bean(initMethod = "start", destroyMethod = "stop")
+ public WireMockServer mockBooksService() {
+ return new WireMockServer(options().port(80));
+ }
+
+ @Bean(name="secondMockBooksService", initMethod = "start", destroyMethod = "stop")
+ public WireMockServer secondBooksMockService() {
+ return new WireMockServer(options().port(81));
+ }
+}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/WireMockConfig.java b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/WireMockConfig.java
index 82b7cddede..3d4f2822f4 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/WireMockConfig.java
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/java/com/baeldung/spring/cloud/client/WireMockConfig.java
@@ -11,7 +11,11 @@ public class WireMockConfig {
@Bean(initMethod = "start", destroyMethod = "stop")
public WireMockServer mockBooksService() {
- return new WireMockServer(9561);
+ return new WireMockServer(80);
}
+ @Bean(initMethod = "start", destroyMethod = "stop")
+ public WireMockServer mockBooksService2() {
+ return new WireMockServer(81);
+ }
}
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-ribbon-test.yml b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-ribbon-test.yml
deleted file mode 100644
index 84a78d0ec7..0000000000
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-ribbon-test.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-eureka:
- client:
- enabled: false
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-spring-cloud-balancer-test.yml b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-spring-cloud-balancer-test.yml
new file mode 100644
index 0000000000..ad11d46ae8
--- /dev/null
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-spring-cloud-balancer-test.yml
@@ -0,0 +1,19 @@
+eureka:
+ client:
+ enabled: false
+
+spring:
+ application:
+ name: books-service
+ cloud:
+ loadbalancer:
+ ribbon:
+ enabled: false
+ discovery:
+ client:
+ simple:
+ instances:
+ books-service[0]:
+ uri: http://localhost:80
+ books-service[1]:
+ uri: http://localhost:81
\ No newline at end of file
diff --git a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-test.yml b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-test.yml
index dce11adf69..231d45004f 100644
--- a/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-test.yml
+++ b/spring-cloud-modules/spring-cloud-eureka/spring-cloud-eureka-feign-client-integration-test/src/test/resources/application-test.yml
@@ -1,11 +1,19 @@
-#book:
-# service:
-# url: http://localhost:9561
-
-books-service:
- ribbon:
- listOfServers: http://localhost:9561
-
eureka:
client:
enabled: false
+
+spring:
+ application:
+ name: books-service
+ cloud:
+ loadbalancer:
+ ribbon:
+ enabled: false
+ discovery:
+ client:
+ simple:
+ instances:
+ books-service[0]:
+ uri: http://localhost:80
+ books-service[1]:
+ uri: http://localhost:81