目录
前言:请先看完我上篇文章——SpringColud——Eureka后再看此篇文章,此文衔接上文
1、Ribbon
1.1、什么是Ribbon(负载均衡)
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们也很容易使用Ribbon实现自定义的负载均衡算法。
1.2、创建两个user-service实例

user-service的yml文件
server:
port: 8081
spring:
application:
name: user-service
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_crud?useSSL=false&useUnicode=true&characterEncoding=utf-8
username: root
password: xxx
mybatis:
type-aliases-package: cn.itssl.pojo
mapper-locations: classpath:mappers/*.xml
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8761/eureka
instance:
# 更倾向使用ip地址,而不是host名
prefer-ip-address: true
# 续约间隔,默认30秒
lease-renewal-interval-in-seconds: 5
# 服务失效时间,默认90秒 服务失效时间是要比续约间隔时间大的
lease-expiration-duration-in-seconds: 10
user-service2的yml文件
server:
port: 8083
spring:
application:
name: user-service
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_crud?useSSL=false&useUnicode=true&characterEncoding=utf-8
username: root
password:
mybatis:
type-aliases-package: cn.itssl.pojo
mapper-locations: classpath:mappers/*.xml
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8761/eureka
instance:
# 更倾向使用ip地址,而不是host名
prefer-ip-address: true
# 续约间隔,默认30秒
lease-renewal-interval-in-seconds: 5
# 服务失效时间,默认90秒 服务失效时间是要比续约间隔时间大的
lease-expiration-duration-in-seconds: 10
启动eureka服务,访问http://127.0.0.1:8761可以看到有两个user-service服务已经注册到了注册中心。

1.3、开启负载均衡
因为Eureka中已经集成了Ribbon,所以我们无需引入新的依赖。
在客户端consumer-service启动类中的RestTemplate的配置方法上添加 @LoadBalanced 注解:
@SpringCloudApplication /

本文介绍SpringCloud中Ribbon负载均衡和Hystrix熔断器的应用实践,包括如何实现服务间的负载均衡调用及熔断机制,确保系统的稳定性和可用性。
最低0.47元/天 解锁文章
7545

被折叠的 条评论
为什么被折叠?



