SpringCloud如何进行Ribbon负载均衡?
1、通过上一课的代码可以发现在Ribb0n里面有一个负载均衡的注解:@LoadBalanced,那么就意味着现在可以实现负载均衡的处理了。
【microcloud-provider-dept-8001】将此项目复制为两份“microcloud-provider-dept-8002”,“microcloud-provider-dept-8003”
2、【microcloud-provider-dept-*】执行各自的数据库脚本,随后修改自己的数据库连接配置。
server:
port: 8002
mybatis:
config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路径
type-aliases-package: com.gwolf.vo # 定义所有操作类的别名所在包
mapper-locations: # 所有的mapper映射文件
- classpath:mybatis/mapper/**/*.xml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 配置当前要使用的数据源的操作类型
driver-class-name: com.mysql.cj.jdbc.Driver # 配置MySQL的驱动程序类
url: jdbc:mysql://localhost:3306/mldn_2?serverTimezone=UTC # 数据库连接地址
username: root # 数据库用户名
password: root # 数据库连接密码
dbcp2: # 进行数据库连接池的配置
min-idle: 5 # 数据库连接池的最小维持连接数
initial-size: 5 # 初始化提供的连接数
max-total: 5 # 最大的连接数
max-wait-millis: 200 # 等待连接获取的最大超时时间
application:
name: microcloud-provider-dept
eureka:
client: #客户端进行Eureka注册的配置
service-url:
defaultZone: http://eureka:eureka@eureka-7001.com:7001/eureka,http://eureka:eureka@eureka-7002.com:7002/eureka,http://eureka:eureka@eureka-7003.com:7003/eureka
instance:
instance-id: dept-8001.com #在信息列表中显示主机名称
prefer-ip-address: true #访问的路径变为IP地址
lease-renewal-interval-in-seconds: 2 #设置心跳的时间间隔(默认是30秒)
lease-expiration-duration-in-seconds: 5 #如果现在超过了5秒的间隔(默认90秒)
info:
app.name: gwolf-microcloud
company.name: www.gwolf.com
build.artifactId: $project.artifactId$
build.version: $project.version$
3、【microcloud-provider-dept-*】修改各自服务的application.yml配置文件运行端口。
4、【microcloud-provider-dept-*】特别注意,现在所有的服务名字一定要保持一致,如果不一致则会认为是两个服务,无法进行负载均衡。
spring:
application:
name: microcloud-provider-dept
5、【microcloud-provider-dept-*】修改项目中的hosts配置文件,在这个配置文件之中追加新的域名:
127.0.0.1 dept-8001.com
127.0.0.1 dept-8002.com
127.0.0.1 dept-8003.com
6、【microcloud-provider-dept-*】在保证Eureka已经正确启动之后启动所有的部门微服务信息。
7、【microcloud-consumer-80】启动消费端,消费端在RestTemplate配置的时候使用了负载均衡的注解。
访问地址:http://client.com/consumer/dept/list
8、现在发现每一次获取的数据都是通过不同的微服务获得的,所以现在同一个消费端就可以通过Ribb0n实现了负载均衡配置处理。