Ribbon负载均衡

不念不忘少年蓝@ 2024-04-18 21:14 188阅读 0赞

Spring Cloud Ribbon 负载均衡是一套客户端负载均衡的系统。

其主要功能是提供客户端的负载均衡的算法。

负载均衡(Load Balance)主要分为集中式负载均衡和进程内负载均衡。

集中式负载均衡:即在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5, 也可以是软件,如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方;

进程内负载均衡:将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。

本例基于已经实现的Eureka集群的配置:代码详见:https://hn.devcloud.huaweicloud.com/codehub/project/db863c4dd09b44e1949853aa22197df3/codehub/7172321/commit

具体步骤:

1.由于其为基于客户端的负载均衡,故需要在客户端即服务的消费者的pom文件中导入相应的包:

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

2.其也需要注册在Eureka中,故在客户端即服务的消费者的yaml中,添加如下代码用来在集群Eureka中注册自己:,并且在主启动类的上方加上EnableEurekaClient:

  1. eureka:
  2. client:
  3. register-with-eureka: false
  4. service-url:
  5. defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

3.在原来的配置文件的用来配置RestTemplate的方法上添加一个注解:@LoadBalanced

4.修改客户端controller类,将原来的ip地址换成:

  1. //private static final String REST_URL_PREFIX = "http://localhost:8001";
  2. private static final String REST_URL_PREFIX = "http://MICROSERVICECLOUD-DEPT";

这样以后就不关心ip和端口号了,可以直接通过微服务名来访问!

5.既然需要负载均衡,就需要有多个服务,即服务的提供者。参考microservicecloud-provider-dept-8001,新建两份,分别命名为8002,8003。同时,需要为这两个服务的提供者各自建立数据库,这里略(参考8001建即可)

需要修改他们的yaml配置文件。主要是配置端口名字和数据库链接。

6.这样就完成了基于Ribbon默认的负载均衡算法的使用轮询的负债均衡了。完整地址:

https://hn.devcloud.huaweicloud.com/codehub/project/db863c4dd09b44e1949853aa22197df3/codehub/7172321/commit

发表评论

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

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

相关阅读

    相关 负载均衡Ribbon

    1. Feign 默认集成了 Ribbon Feign 是一个声明式的伪 Http 客户端,它使得写 Http 客户端变得更简单。使用 Feign,只需要创建一个接口并注

    相关 负载均衡---ribbon

    Ribbon:提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。 上一篇简单讲解了eureka的使用,这一篇文章基于上一篇的基础上,讲一下spring

    相关 Ribbon负载均衡

    1. 集中式负载均衡 > 在客户端和服务端之间使用独立的负载均衡设施(可以是硬件,如F5, 也可以是软件,如nginx、LVS等), 由该设施负责把访问请求通过某种策略转发