学习内容
这块报的错误是在学负载均衡Ribbon
时,启动项目后,客户端(消费者)
去调用时产生的
报错详情
关于Ribbon的配置
导入相关的依赖
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-ribbon -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!-- Eureka服务提供者的jar包 -->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
application.yml
配置
我的错误出现在这里,fetch-registry
:必须是true
,不能是false
,为true
时的意思是表示检索注册中心的所有服务。如果为false
则无法发现服务
自定义Spring
配置类:ConfigBean.java
配置负载均衡实现RestTemplate
@Configuration // 相当于spring中的 applicationContext.xml
public class ConfigBean {
/**
* 配置负载均衡实现RestTemplate
*/
@Bean
@LoadBalanced //实现 Ribbon 的注解
public RestTemplate getRestTemplate() {
return new RestTemplate();
}
}
controller
中业务
@RestController
public class DeptConsumerController {
/**
* (url,实体:Map,Class<T> responseType)
* 提供多种便捷访问远程http服务的方法,简单的Restful服务模板
*/
@Autowired
private RestTemplate restTemplate;
private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDER-DEPT";
@RequestMapping("/consumer/dept/list")
public List<Dept> list(){
return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
}
}
启动查看结果