服务器
<project xmlns="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>org</groupId>
<artifactId>ribbon-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.7.RELEASE</version>
</dependency>
</dependencies>
</project>
@RestController
public class MyController {
@RequestMapping(value="/person",method=RequestMethod.GET,
produces=MediaType.APPLICATION_JSON_VALUE)
public Person getPerson(HttpServletRequest request){
Person p=new Person();
p.setId(1);
p.setName("angus");
p.setMessage(request.getRequestURL().toString());
return p;
}
}
@SpringBootApplication
public class ServiceApp {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
String port=scan.nextLine();
new SpringApplicationBuilder(ServiceApp.class).properties("server.port="+port).run(args);
}
}
客户端
<project xmlns="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>org</groupId>
<artifactId>ribbon-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-core</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon-httpclient</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
</project>
public class TestRibbon {
public static void main(String[] args) throws Exception{
ConfigurationManager.getConfigInstance().setProperty("my-client.ribbon.listOfServers", "localhost:8080,localhost:8085");
RestClient client=(RestClient) ClientFactory.getNamedClient("my-client");
HttpRequest request=HttpRequest.newBuilder().uri("/person").build();
for(int i=0;i<10;i++){
HttpResponse response=client.executeWithLoadBalancer(request);
String json=response.getEntity(String.class);
System.out.println(json);
}
}