SpringCloud-Ribbon(负载均衡)

客官°小女子只卖身不卖艺 2022-05-19 06:17 361阅读 0赞

Ribbon负载均衡

注明:此项目为本人学习尚硅谷老师的教学视频然后整理核心的配置文件,所有的项目均在以下地址下载。
https://github.com/xwbGithub/microservicecloud下载

本项目请参考microservicecloud-consumer-dept-80项目(负载均衡客户端),

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具

以下对微服务MICROSERVICECLOUD-DEPT进行Ribbon负载均衡测试,其中微服务的集群请看此文将 微服务的集群搭建

以下介绍负载均衡微服务的搭建

创建子模块microservicecloud-consumer-dept-80(负载均衡客户端)

pom核心文件

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-eureka</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.cloud</groupId>
  7. <artifactId>spring-cloud-starter-ribbon</artifactId>
  8. </dependency>
  9. <dependency>
  10. <groupId>org.springframework.cloud</groupId>
  11. <artifactId>spring-cloud-starter-config</artifactId>
  12. </dependency>

yml文件配置

  1. server:
  2. port: 80
  3. eureka:
  4. client:
  5. register-with-eureka: false #自己是否可以注册
  6. service-url:
  7. defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

Configuration修改内容

此处使用RestTemplate工具类注入了LoadBalanced注解

  1. //boot -->spring applicationContext.xml --- @Configuration配置 ConfigBean = applicationContext.xml
  2. @Configuration
  3. public class ConfigBean {
  4. @Bean
  5. @LoadBalanced
  6. //Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具。
  7. public RestTemplate getRestTemplate() {
  8. return new RestTemplate();
  9. }
  10. }

Controller访问层(此处直接使用restTemplate是因为此工具类注入了负载均衡算法)

  1. @RestController
  2. public class DeptController_Consumer {
  3. //此处的请求前缀是微服务提供者8001,8002,8003提供的统一服务名
  4. private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";
  5. /**
  6. * 使用 使用restTemplate访问restful接口非常的简单粗暴无脑。 (url, requestMap,
  7. * ResponseBean.class)这三个参数分别代表 REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。
  8. */
  9. @Autowired
  10. private RestTemplate restTemplate;
  11. //此处只展示了一个方法,其他方法请查看原项目
  12. @SuppressWarnings("unchecked")
  13. @RequestMapping(value = "/consumer/dept/list")
  14. public List<Dept> list()
  15. {
  16. return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
  17. }
  18. }

测试:通过访问http://MICROSERVICECLOUD-DEPT/consumer/dept/list可以访问到集合中的数据,再次刷新,会得到另外一个库的数据,依次刷新,循环访问8001,8002,8003的微服务。

70

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读

    相关 负载均衡

    对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限...

    相关 负载均衡

    近来面试有被问到负载均衡,整理一下我所理解的。 一、 负载均衡(Load Balance):负载均衡的意思是分摊到多个处理机制,已达到各处理机制使用率最大化。这个使用率

    相关 负载均衡

    一、计算机集群 1、什么是计算机集群    计算机集群简称集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,

    相关 负载均衡

    定义 > 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外供应效力而无需其他服务器的辅助。经过某种负载分管技术,将外部发送

    相关 负载均衡

    一、什么是负载均衡(Load balancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但是随着业务量越来越大,无论是性能上还是稳定性上都有了更大的