SpringCloud如何实现和测试Ribbon负载均衡配置

2025-07-26 15:30:01

1、Ribbon在工作时分成两步:第一步先选择Eureka Server,它优先选择在同一个区域内负载较少的Server。第二步再根据用户指定的策略,再从Server取到的服务注册表中选择一个地址。其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。我们现在来看一下我们需要实现的项目的整体架构图如下:

SpringCloud如何实现和测试Ribbon负载均衡配置

2、参考microcloudservice-provider-dept-8001,新建两个提供者微服务,分别命名为:microcloudservice-provider-dept-8002,microcloudservice-provider-dept-8003。在父pom文件中加入这两个模块。

SpringCloud如何实现和测试Ribbon负载均衡配置
SpringCloud如何实现和测试Ribbon负载均衡配置

3、修改上面两个复制项目的主程序类的启动类名称。

SpringCloud如何实现和测试Ribbon负载均衡配置

4、新建8002/8003数据库,各自微服务分别连自己的数据库。DROP DATABASE IF EXISTS cloudDB02稆糨孝汶;CREATE DATABASE cloudDB02 CHARACTER SET UTF8;USE cloudDB02;DROP TABLE IF EXISTS dept;CREATE TABLE dept ( dname varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, db_source varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, deptno int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (deptno) USING BTREE);insert into dept(dname,db_source) values('开发部',database());insert into dept(dname,db_source) values('人事部',database());insert into dept(dname,db_source) values('财务部',database());insert into dept(dname,db_source) values('市场部',database());insert into dept(dname,db_source) values('运维部',database());

SpringCloud如何实现和测试Ribbon负载均衡配置
SpringCloud如何实现和测试Ribbon负载均衡配置

5、修改8002/8003各自的yml文件,修改端口和数据库连接。server: port: 8002mybatis: conf足毂忍珩ig-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路径 type-aliases-package: com.gwolf.springcloud.entities # 定义所有操作类的别名所在包 mapper-locations: # 所有的mapper映射文件 - classpath:mybatis/mapper/**/*.xmlspring: datasource: type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型 driver-class-name: com.mysql.cj.jdbc.Driver # 配置MySQL的驱动程序类 url: jdbc:mysql://localhost:3306/cloudDB02?serverTimezone=UTC # 数据库连接地址 username: root # 数据库用户名 password: root # 数据库连接密码 dbcp2: # 进行数据库连接池的配置 min-idle: 5 # 数据库连接池的最小维持连接数 initial-size: 5 # 初始化提供的连接数 max-total: 5 # 最大的连接数 max-wait-millis: 200 # 等待连接获取的最大超时时间 application: name: microcloudservice-provider-dept eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ instance: instance-id: microcloudservice-provider-dept-8002 prefer-ip-address: trueinfo: app.name: gwolf-microcloudservice-provider-dept-8002 company.name: www.gwolf.com build.artifactId: $project.artifactId$ build.version: $project.version$

SpringCloud如何实现和测试Ribbon负载均衡配置

6、三个部门微服务提供者要对外暴露统一的微服务实例名:spring: application: name: microcloudser即枢潋雳vice-provider-dept三个项目的这个名字必须一样。现在我们来测试Ribbon的负载均衡配置,验证是否是轮询访问了三个部门微服务提供者。1、启动3个eureka集群2、启动3个部门微服务提供者3、启动部门微服务消费者。

SpringCloud如何实现和测试Ribbon负载均衡配置
SpringCloud如何实现和测试Ribbon负载均衡配置
SpringCloud如何实现和测试Ribbon负载均衡配置

7、现在我们可以看出ribbon通过消费端已经实现了负载均衡轮询访问了部门提供者。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢