由于Spring Cloud Ribbon 的封装,在微服务架构中使用客户端负载均衡调用非常简单,只需要如下两个步骤
1.启动多个服务提供者实例并注册到一个服务注册中心或者是服务注册中心集群
2.服务消费者通过被@LoadBalance注解修饰RestTemplate来调用服务提供者
具体操作
1.拷贝一份服务提供者
2.导入 不然不能使用
即使idea2020会智能自动导入 也无法使用,需要手动导入设置
没问题就继续
然后继续下一步 下一步。
最后发现名字有问题 ,就进行修改名字 rename
测试
1.修改端口号 名字相同
server:
port: 8085
spring:
application:
# 配置服务的名称 01-02 和 01 的相同名字
name: 01-springcloud-service-provider
Eureka:
instance:
# 每间隔2s,想服务器发送一次心跳,证明自己还活着
lease-renewal-interval-in-seconds: 2
# 告诉服务器 ,如果我10秒内没有给你发心跳,代表我故障了,将我剔除
lease-expiration-duration-in-seconds: 10
client:
# 注册中心连接地址
service-url.defaultZone: http://eureka8083:8083/eureka/,http://eureka8084:8084/eureka/
2.启动注册中心 和 提供者后发现
两个服务提供者,写到了一个服务上
3.消费者负载均衡 消费
/**
* @Bean等于 spring配置中的 依赖注入
* <bean id = “” class = “”></bean>
* @return RestTemplate
*/
//Ribbon的负载均衡 @LoadBalanced
@LoadBalanced
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
第一次访问了 服务提供者 01(此处并不是我的截图,我的端口应该是8082调用消费者)
刷新后 访问了 服务提供者 02(此处并不是我的截图,我的端口应该是8082调用消费者)
进行了轮询的调用策略