- Structure
- pom.xml
4.0.0 org.blog.test load-balance-project 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-parent 1.3.6.RELEASE UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-ribbon 1.1.4.RELEASE org.springframework.boot spring-boot-maven-plugin
- application.properties
load-client.ribbon.eureka.enabled=false load-client.ribbon.listOfServers=localhost:8888,localhost:9999 load-client.ribbon.ServerListRefreshInterval:15000
- LoadClientConfiguration.java
package org.blog.test; import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.AvailabilityFilteringRule; import com.netflix.loadbalancer.IPing; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.PingUrl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; public class LoadClientConfiguration { @Autowired IClientConfig ribbonClientConfig; @Bean public IPing ribbonPing(IClientConfig config) { return new PingUrl(false, "/info"); } @Bean public IRule ribbonRule(IClientConfig config) { return new AvailabilityFilteringRule(); } }
- LoadBalanceApplication.java
package org.blog.test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.netflix.ribbon.RibbonClient; import org.springframework.context.annotation.Bean; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @SpringBootApplication @RestController @RibbonClient(name = "load-client", configuration = LoadClientConfiguration.class) public class LoadBalanceApplication { public static void main(String[] args) { SpringApplication.run(LoadBalanceApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate() { return new RestTemplate(); } @Autowired RestTemplate restTemplate; @RequestMapping("/info") public String getInfo() { return restTemplate.getForObject("http://load-client/server/info", String.class); } }
You can find the response as below.
- result
댓글 없음 :
댓글 쓰기