SpringCloud-Ribbon(负载均衡)
Ribbon负载均衡
注明:此项目为本人学习尚硅谷老师的教学视频然后整理核心的配置文件,所有的项目均在以下地址下载。
https://github.com/xwbGithub/microservicecloud下载
本项目请参考microservicecloud-consumer-dept-80项目(负载均衡客户端),
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具
以下对微服务MICROSERVICECLOUD-DEPT进行Ribbon负载均衡测试,其中微服务的集群请看此文将 微服务的集群搭建
以下介绍负载均衡微服务的搭建
创建子模块microservicecloud-consumer-dept-80(负载均衡客户端)
pom核心文件
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
yml文件配置
server:
port: 80
eureka:
client:
register-with-eureka: false #自己是否可以注册
service-url:
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
Configuration修改内容
此处使用RestTemplate工具类注入了LoadBalanced注解
//boot -->spring applicationContext.xml --- @Configuration配置 ConfigBean = applicationContext.xml
@Configuration
public class ConfigBean {
@Bean
@LoadBalanced
//Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
Controller访问层(此处直接使用restTemplate是因为此工具类注入了负载均衡算法)
@RestController
public class DeptController_Consumer {
//此处的请求前缀是微服务提供者8001,8002,8003提供的统一服务名
private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";
/**
* 使用 使用restTemplate访问restful接口非常的简单粗暴无脑。 (url, requestMap,
* ResponseBean.class)这三个参数分别代表 REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。
*/
@Autowired
private RestTemplate restTemplate;
//此处只展示了一个方法,其他方法请查看原项目
@SuppressWarnings("unchecked")
@RequestMapping(value = "/consumer/dept/list")
public List<Dept> list()
{
return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
}
}
测试:通过访问http://MICROSERVICECLOUD-DEPT/consumer/dept/list可以访问到集合中的数据,再次刷新,会得到另外一个库的数据,依次刷新,循环访问8001,8002,8003的微服务。
还没有评论,来说两句吧...