多语言展示
当前在线:764今日阅读:11今日分享:15

SpringCloud如何进行Ribbon负载均衡?

Spring Cloud实战开发系列课程-分布式开发简介是系列课程第十五课。Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring没有重复制造轮子,它只开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
工具/原料
1

spring cloud

2

spring boot

3

restful

4

maven

5

intellij idea

6

Eureka

7

Ribbon

方法/步骤
1

通过上一课的代码可以发现在Ribb0n里面有一个负载均衡的注解:@LoadBalanced,那么就意味着现在可以实现负载均衡的处理了。【microcloud-provider-dept-8001】将此项目复制为两份“microcloud-provider-dept-8002”,“microcloud-provider-dept-8003”

2

【microcloud-provider-dept-*】执行各自的数据库脚本,随后修改自己的数据库连接配置。server:  port: 8002mybatis:  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径  type-aliases-package: com.gwolf.vo       # 定义所有操作类的别名所在包  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/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-depteureka:  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.com127.0.0.1 dept-8002.com127.0.0.1 dept-8003.com

6

【microcloud-provider-dept-*】在保证Eureka已经正确启动之后启动所有的部门微服务信息。

7

【microcloud-consumer-80】启动消费端,消费端在RestTemplate配置的时候使用了负载均衡的注解。访问地址:http://client.com/consumer/dept/list

8

现在发现每一次获取的数据都是通过不同的微服务获得的,所以现在同一个消费端就可以通过Ribb0n实现了负载均衡配置处理。

注意事项

SpringCloud实战开发系列课程第十四课请参考:https://jingyan.baidu.com/article/a501d80c3aed84ec620f5e7e.html

推荐信息