springcloud(四):第一个Ribbon程序
2021-03-21 09:26
标签:exec 均衡 nbu ret pac cto getname uil com 负载均衡框架,支持可插拔式的负载均衡规则 支持多种协议,如HTTP、UDP等 提供负载均衡客户端 一个负载均衡器,至少提供以下功能: 为了实现基本的负载均衡功能,Ribbon的负载均衡器有三大子模块: 创建项目:ribbon-service pom.xml: Person: MyController: ServiceApp: 启动两个服务:控制台输入8080和8081: 然后创建一个客户端ribbon-client项目: pom: TestRibbon: 然后运行: 实现了负载均衡了。 springcloud(四):第一个Ribbon程序 标签:exec 均衡 nbu ret pac cto getname uil com 原文地址:https://www.cnblogs.com/liuhui0308/p/13904842.html1. Ribbon
1.1 负载均衡器组件
1.2 实现程序
package org.crazyit.cloud;
public class Person {
private Integer id;
private String name;
private String message;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package org.crazyit.cloud;
import javax.servlet.http.HttpServletRequest;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@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;
}
}
package org.crazyit.cloud;
import java.util.Scanner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class ServiceApp {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String port = scan.nextLine();
new SpringApplicationBuilder(ServiceApp.class).properties(
"server.port=" + port).run(args);
}
}
package org.crazyit.cloud;
import com.netflix.client.ClientFactory;
import com.netflix.client.http.HttpRequest;
import com.netflix.client.http.HttpResponse;
import com.netflix.config.ConfigurationManager;
import com.netflix.niws.client.http.RestClient;
public class TestRibbon {
public static void main(String[] args) throws Exception {
ConfigurationManager.getConfigInstance().setProperty(
"my-client.ribbon.listOfServers", "localhost:8080,localhost:8081");
RestClient client = (RestClient) ClientFactory.getNamedClient("my-client");
HttpRequest request = HttpRequest.newBuilder().uri("/person").build();
for(int i = 0; i ) {
HttpResponse response = client.executeWithLoadBalancer(request);
String json = response.getEntity(String.class);
System.out.println(json);
}
}
}
文章标题:springcloud(四):第一个Ribbon程序
文章链接:http://soscw.com/index.php/essay/67114.html