Ribbon是客户端负载均衡,所以肯定集成再消费端,也就是consumer端
修改microservice-student-consumer-80
引入依赖,pom.xml 加入 ribbon相关依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
application.yml
eureka:
client:
register-with-eureka: false #false 由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false
service-url:
defaultZone: http://eureka2001.java1234.com:2001/eureka/,http://eureka2002.java1234.com:2002/eureka/,http://eureka2003.java1234.com:2003/eureka/
ribbon结合eureka来调用服务提供者;
SpringCloudConfig也改成 要加个负载均衡配置 @LoadBalanced
/**
* 调用服务模版对象
* @return
*/
@Bean
@LoadBalanced // 引入ribbon负载均衡
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
因为和eureka整合,所以启动类StudentConsumerApplication_80 加个注解 @EnableEurekaClient
这里还有一个,要修改下StudentConsumerController的PRE_HOST,改成指定的微服务应用名称;
当然这里要先在服务提供者microservice-student-provider-1001的application.yml加下配置,指定下应用名称:
application:
name: microservice-student
我们的微服务应用名称是 microservice-student
所以服务调用者这边的控制器里PRE_HOST改成 http://MICROSERVICE-STUDENT即可;
上面配置好后,我们可以测试下;
先启动三个eureka,然后再启动服务提供者,再启动服务消费者;
执行 http://localhost/student/list
[{"id":1,"name":"张三","grade":"大一"},{"id":2,"name":"李四","grade":"大二"},{"id":3,"name":"王五","grade":"大三"},{"id":4,"name":"赵六","grade":"大四"}]
结果就出来了,说明配置OK;