<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>test.ygy</groupId><artifactId>ribbon-consumer</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>ribbon-consumer</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.6.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Dalston.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
/**
* Created by guoyao on 2017/8/8.
*/@RestControllerpublicclassConsumerController {@Autowiredprivate RestTemplate restTemplate ;
@RequestMapping("/consumerServer")
public String consumerServer() {
//此方法为eureka—server , eureka-server-slave 提供return restTemplate.getForEntity("http://SERVER/helloworld?key=ygy",String.class).getBody();
}
@RequestMapping("/consumerClient")
public String consumerClient() {
//此方法为eureka—client提供return restTemplate.getForEntity("http://client/getClient?key=client",String.class).getBody();
}
}
输出
//localhost:8001/// 调用consumerServer 2次,consumerClient一次
eureka—server: this is server master !
eureka—server-salve: this is server slave !
eureka-client : this is eureka clientserver
自定义ribbon负载
/**
* Created by guoyao on 2017/8/10.
*/@Configuration// 包目录必须在@ComponentScan扫描不到的目录publicclassCustomerRibbonConfig {@Beanpublic IRule ribbonRule() {
returnnew RandomRule();
}
}